最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#使用DoddleReport快速生成報表

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

有的時候,我們需要對一堆數(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 &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. 對輸出的字段進行格式控制

    // 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)文章

最新評論

桃江县| 固安县| 九江市| 买车| 濮阳市| 河东区| 郯城县| 察雅县| 修文县| 专栏| 海伦市| 泰顺县| 安塞县| 英超| 太仆寺旗| 宜都市| 蒲江县| 贵州省| 临澧县| 万年县| 望奎县| 二连浩特市| 西乡县| 平安县| 行唐县| 贡觉县| 上蔡县| 文水县| 英吉沙县| 吉木萨尔县| 林州市| 泰州市| 柏乡县| 临沧市| 京山县| 朝阳市| 鲜城| 冕宁县| 鞍山市| 巴中市| 沁水县|