欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#使用DoddleReport快速生成報(bào)表

 更新時(shí)間:2022年06月20日 09:56:48   作者:天方  
這篇文章介紹了C#使用DoddleReport快速生成報(bào)表的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

有的時(shí)候,我們需要對(duì)一堆數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析后生成HTML或Excel格式報(bào)表。本來(lái)這并不是一件很難的事,但確是件比較麻煩的事情。最令人頭痛的是遇到領(lǐng)導(dǎo)下發(fā)的臨時(shí)緊急任務(wù)的時(shí)候,往往領(lǐng)導(dǎo)都不知道到底要什么報(bào)表,只是給你一堆數(shù)據(jù)先讓你出一個(gè)分析報(bào)告,當(dāng)你上繳分析報(bào)告后,領(lǐng)導(dǎo)會(huì)針對(duì)分析結(jié)果讓你再出一個(gè)分析報(bào)告… 。這時(shí)要是有一個(gè)快速生成報(bào)表的工具就非常方便了。

使用nuget安裝控件

-install package DoddleReport
-install package DoddleReport.iTextSharp

現(xiàn)在,我們可以通過(guò)DoddleReport來(lái)快速生成報(bào)表。一個(gè)簡(jiǎn)單的示例如下:

假定我們的數(shù)據(jù)對(duì)象為如下格式:

    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)
            });
    }

要對(duì)該數(shù)據(jù)源生成報(bào)表,則只需要如下幾步:

1. 通過(guò)ToReportSource擴(kuò)展函數(shù)將數(shù)據(jù)源轉(zhuǎn)換為Report對(duì)象

    // Create the report and turn our query into a ReportSource
    var report = new Report(GetAllData().ToList().ToReportSource());

2. 添加報(bào)表的標(biāo)題和頁(yè)眉頁(yè)腳的描述

    // 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 &copy; 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. 對(duì)輸出的字段進(jìn)行格式控制

    // Customize the data fields
    report.DataFields["Id"].Hidden = true;
    report.DataFields["Price"].DataFormatString = "{0:c}";
    report.DataFields["LastPurchase"].DataFormatString = "{0:d}";

4. 輸出為報(bào)表

    using (var outputStream = File.Create(@"r:\report.html"))
    {
        var writer = new DoddleReport.Writers.HtmlReportWriter();
        writer.WriteReport(report, outputStream);
    }

這樣,我們就可以得到如下的報(bào)表:

使用起來(lái)非常簡(jiǎn)單,但基本上該有的都有,還是非常不錯(cuò)的。其中2,3兩步是可以省略的,最簡(jiǎn)單的方式下,只要如下幾行即可:

    // 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中輸出成在線報(bào)表。例如,我們只要把上面例子中的"Writers.HtmlReportWriter"改成"OpenXml.ExcelReportWriter"就可以生成Excel格式的報(bào)表,非常強(qiáng)大而方便。

到此這篇關(guān)于C#使用DoddleReport快速生成報(bào)表的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C#框架winform實(shí)現(xiàn)簡(jiǎn)單點(diǎn)餐系統(tǒng)

    C#框架winform實(shí)現(xiàn)簡(jiǎn)單點(diǎn)餐系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C#框架winform實(shí)現(xiàn)簡(jiǎn)單點(diǎn)餐系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • VS2012 程序打包部署圖文詳解

    VS2012 程序打包部署圖文詳解

    VS2012雖然沒(méi)有集成打包工具,但它為我們提供了下載的端口,需要我們手動(dòng)安裝一個(gè)插件InstallShield。網(wǎng)上有很多第三方的打包工具,但為什么偏要使用微軟提供的呢
    2016-12-12
  • 快速了解c# 常量

    快速了解c# 常量

    這篇文章主要介紹了c# 常量的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • C#判斷上傳文件是否是圖片以防止木馬上傳的方法

    C#判斷上傳文件是否是圖片以防止木馬上傳的方法

    這篇文章主要介紹了C#判斷上傳文件是否是圖片以防止木馬上傳的方法,對(duì)于網(wǎng)絡(luò)安全來(lái)說(shuō)至關(guān)重要,需要的朋友可以參考下
    2014-07-07
  • 解析C#中委托的同步調(diào)用與異步調(diào)用(實(shí)例詳解)

    解析C#中委托的同步調(diào)用與異步調(diào)用(實(shí)例詳解)

    本篇文章是對(duì)C#中委托的同步調(diào)用與異步調(diào)用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C#中的預(yù)定義類型與引用類型

    C#中的預(yù)定義類型與引用類型

    這篇文章介紹了C#中的預(yù)定義類型與引用類型,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • C#執(zhí)行存儲(chǔ)過(guò)程并將結(jié)果填充到GridView的方法

    C#執(zhí)行存儲(chǔ)過(guò)程并將結(jié)果填充到GridView的方法

    這篇文章主要介紹了C#執(zhí)行存儲(chǔ)過(guò)程并將結(jié)果填充到GridView的方法,結(jié)合實(shí)例形式分析了C#存儲(chǔ)過(guò)程操作及GridView控件相關(guān)操作技巧,需要的朋友可以參考下
    2017-02-02
  • C#實(shí)現(xiàn)簡(jiǎn)單播放mp3的方法

    C#實(shí)現(xiàn)簡(jiǎn)單播放mp3的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)簡(jiǎn)單播放mp3的方法,涉及C#播放多媒體文件的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • c#接口使用示例分享

    c#接口使用示例分享

    接口與抽象類一樣,也是表示某種規(guī)則,一旦使用了該規(guī)則,就必須實(shí)現(xiàn)相關(guān)的方法。對(duì)于C#語(yǔ)言而言,由于只能繼承自一個(gè)父類,因此若有多個(gè)規(guī)則需要實(shí)現(xiàn),則使用接口是個(gè)比較好的做法
    2014-02-02
  • Unity ScrollView實(shí)現(xiàn)無(wú)限循環(huán)效果

    Unity ScrollView實(shí)現(xiàn)無(wú)限循環(huán)效果

    這篇文章主要為大家詳細(xì)介紹了Unity ScrollView實(shí)現(xiàn)無(wú)限循環(huán)效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07

最新評(píng)論