我的编程空间,编程开发者的网络收藏夹
学习永远不晚

C#使用DoddleReport快速生成报表

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

C#使用DoddleReport快速生成报表

有的时候,我们需要对一堆数据进行统计分析后生成HTML或Excel格式报表。本来这并不是一件很难的事,但确是件比较麻烦的事情。最令人头痛的是遇到领导下发的临时紧急任务的时候,往往领导都不知道到底要什么报表,只是给你一堆数据先让你出一个分析报告,当你上缴分析报告后,领导会针对分析结果让你再出一个分析报告… 。这时要是有一个快速生成报表的工具就非常方便了。

使用nuget安装控件

-install package DoddleReport
-install package DoddleReport.iTextSharp

现在,我们可以通过DoddleReport来快速生成报表。一个简单的示例如下:

假定我们的数据对象为如下格式:

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

数据源通如下函数生成:

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

要对该数据源生成报表,则只需要如下几步:

1. 通过ToReportSource扩展函数将数据源转换为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格式的报表,非常强大而方便。

到此这篇关于C#使用DoddleReport快速生成报表的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

C#使用DoddleReport快速生成报表

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Excel如何使用F11快速生成图表

这篇文章主要介绍了Excel如何使用F11快速生成图表,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。F11快速生成图表如果有这样一批数据,如何使用快捷键,一次性生成一张图表呢
2023-06-27

Excel如何使用Ctrl+T快速生成超级表

这篇文章将为大家详细讲解有关Excel如何使用Ctrl+T快速生成超级表,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Ctrl+T快速生成超级表超级表在实际中,其实是很有用的,比如说:下拉数据仍然可以看到
2023-06-27

怎么使用thinkphp生成报表

本文小编为大家详细介绍“怎么使用thinkphp生成报表”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用thinkphp生成报表”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、前置条件在使用thinkp
2023-07-05

使用IDEA怎么快速生成注释文档

本篇文章给大家分享的是有关使用IDEA怎么快速生成注释文档,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。IDEA提供了快捷方式来生成指定的代码。首先我们要编写好代码的模板。打开
2023-06-15

.NET Core使用SkiaSharp实现快速生成二维码

本指南介绍了使用SkiaSharp在.NETCore中生成二维码的方法。SkiaSharp允许开发人员在不同平台上生成图形,包括QR码。要生成二维码,请使用SkiaSharp.QrCodeGenerator类。通过自定义选项,您可以调整二维码的大小、容错级别和颜色。本文提供了一个示例代码段,展示了如何生成和显示QR码。生成清晰、可扫描的QR码时,请确保文本长度适中,前景颜色与背景形成对比。
.NET Core使用SkiaSharp实现快速生成二维码
2024-04-02

使用Python快速制作可视化报表

我们可以试用可视化包——Pyechart。Echarts是百度开源的一个数据可视化JS库,主要用于数据可视化。pyecharts是一个用于生成Echarts图标的类库。实际就是Echarts与Python的对接。安装pyecharts兼容P
2023-01-31

怎么使用Python快速简单生成矩形词云

本文小编为大家详细介绍“怎么使用Python快速简单生成矩形词云”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用Python快速简单生成矩形词云”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。效果实现打开I
2023-07-05

使用生成系统健康报告快速查看Win8系统是否健康

Win8系统使用一段时间后,如果你想要了解你的Win8系统是否健康或者有没有出现什么故障的话,你可以直接通过win8系统自带的“生成系统健康报告”功能生成然后查看。下面小编就与大家分享下Win8系统下如何快速生成并查
2022-06-04

C#怎么通过System.CommandLine快速生成支持命令行的应用程序

这篇文章主要介绍了C#怎么通过System.CommandLine快速生成支持命令行的应用程序的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C#怎么通过System.CommandLine快速生成支持命令行的应
2023-07-02

C#使用Excel动态函数实现生成依赖列表

本文介绍了使用C#中Excel动态函数生成依赖列表的方法。动态函数可以自动更新结果,当源单元格中的数据更改时,依赖列表也会更新。优势包括自动化、准确性、可追溯性和灵活性。局限性包括处理大量数据时的性能下降和循环依赖的风险。替代方法包括图表、第三方工具和编程接口。通过了解动态函数,可以有效管理数据依赖关系,提高数据准确性和灵活性。
C#使用Excel动态函数实现生成依赖列表
2024-04-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录