C#使用DoddleReport快速生成報表
有的時候,我們需要對一堆數(shù)據(jù)進行統(tǒng)計分析后生成HTML或Excel格式報表。本來這并不是一件很難的事,但確是件比較麻煩的事情。最令人頭痛的是遇到領(lǐng)導(dǎo)下發(fā)的臨時緊急任務(wù)的時候,往往領(lǐng)導(dǎo)都不知道到底要什么報表,只是給你一堆數(shù)據(jù)先讓你出一個分析報告,當(dāng)你上繳分析報告后,領(lǐng)導(dǎo)會針對分析結(jié)果讓你再出一個分析報告… 。這時要是有一個快速生成報表的工具就非常方便了。
使用nuget安裝控件
-install package DoddleReport -install package DoddleReport.iTextSharp
現(xiàn)在,我們可以通過DoddleReport來快速生成報表。一個簡單的示例如下:
假定我們的數(shù)據(jù)對象為如下格式:
public class Product { public int Id { get; set; } public string Name { get; set; } public string Description { get; set; } public double Price { get; set; } public int OrderCount { get; set; } public DateTime LastPurchase { get; set; } public int UnitsInStock { get; set; } }
數(shù)據(jù)源通如下函數(shù)生成:
static IEnumerable<Product> GetAllData() { var rand = new Random(); return Enumerable.Range(1, 20).Select( i => new Product { Id = i, Name = "Product " + i, Description = "This is an example description", Price = rand.NextDouble() * 100, OrderCount = rand.Next(1000), LastPurchase = DateTime.Now.AddDays(rand.Next(1000)), UnitsInStock = rand.Next(0, 2000) }); }
要對該數(shù)據(jù)源生成報表,則只需要如下幾步:
1. 通過ToReportSource擴展函數(shù)將數(shù)據(jù)源轉(zhuǎn)換為Report對象
// Create the report and turn our query into a ReportSource var report = new Report(GetAllData().ToList().ToReportSource());
2. 添加報表的標題和頁眉頁腳的描述
// Customize the Text Fields report.TextFields.Title = "Products Report"; report.TextFields.SubTitle = "This is a sample report showing how Doddle Report works"; report.TextFields.Footer = "Copyright 2011 © The Doddle Project"; report.TextFields.Header = string.Format(@" Report Header Demo"); // Render hints allow you to pass additional hints to the reports as they are being rendered report.RenderHints.BooleanCheckboxes = true;
3. 對輸出的字段進行格式控制
// Customize the data fields report.DataFields["Id"].Hidden = true; report.DataFields["Price"].DataFormatString = "{0:c}"; report.DataFields["LastPurchase"].DataFormatString = "{0:d}";
4. 輸出為報表
using (var outputStream = File.Create(@"r:\report.html")) { var writer = new DoddleReport.Writers.HtmlReportWriter(); writer.WriteReport(report, outputStream); }
這樣,我們就可以得到如下的報表:
使用起來非常簡單,但基本上該有的都有,還是非常不錯的。其中2,3兩步是可以省略的,最簡單的方式下,只要如下幾行即可:
// Create the report and turn our query into a ReportSource var report = new Report(GetAllData().ToList().ToReportSource()); using (var outputStream = File.Create(@"r:\report.html")) { var writer = new DoddleReport.Writers.HtmlReportWriter(); writer.WriteReport(report, outputStream); }
值得一提的是,DoddleReport支持的輸出給事非常豐富:PDF、EXCEL、HTML、CSV等常用的格式都支持,也能直接在Asp.net中輸出成在線報表。例如,我們只要把上面例子中的"Writers.HtmlReportWriter"改成"OpenXml.ExcelReportWriter"就可以生成Excel格式的報表,非常強大而方便。
到此這篇關(guān)于C#使用DoddleReport快速生成報表的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C#框架winform實現(xiàn)簡單點餐系統(tǒng)
這篇文章主要為大家詳細介紹了C#框架winform實現(xiàn)簡單點餐系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-07-07解析C#中委托的同步調(diào)用與異步調(diào)用(實例詳解)
本篇文章是對C#中委托的同步調(diào)用與異步調(diào)用進行了詳細的分析介紹,需要的朋友參考下2013-05-05C#執(zhí)行存儲過程并將結(jié)果填充到GridView的方法
這篇文章主要介紹了C#執(zhí)行存儲過程并將結(jié)果填充到GridView的方法,結(jié)合實例形式分析了C#存儲過程操作及GridView控件相關(guān)操作技巧,需要的朋友可以參考下2017-02-02Unity ScrollView實現(xiàn)無限循環(huán)效果
這篇文章主要為大家詳細介紹了Unity ScrollView實現(xiàn)無限循環(huán)效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-07-07