当前位置: 首页 > news >正文

C# 使用 doggleReport 生成pdf报表


1. 安装nuget


-install package DoddleReport
-install package DoddleReport.iTextSharp


2. 实例代码


static void Main(string[] args)
        {
            var query = GetAll();
            var report = new Report(query.ToReportSource());


            report.TextFields.Title = "Graduate Student Report";
            report.TextFields.SubTitle = "sample header";
            report.TextFields.Footer = "sample footer";
            report.TextFields.Header = string.Format(@"
    Report Generated: {0}
    Total Students: {1}", DateTime.Now, 100);
            report.RenderHints.BooleanCheckboxes = true;
            report.DataFields["Id"].Hidden = true;


            var stream = new MemoryStream();
            var writer = new PdfReportWriter();
            writer.WriteReport(report, stream);


            const string path = "C:\\test";
            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }
            File.WriteAllBytes(string.Format(path+"/studentReport_{0}.pdf",DateTime.Now.ToString("dd-MM-yyyy_HH-mm-ss")), stream.GetBuffer());


            Console.WriteLine("done");
        }


        public class Student
        {
            public int Id { get; set; }
            public string Name { get; set; }
            public bool IsPass { get; set; }
            public int Score { get; set; }
            public DateTime GraduateAt { get; set; }
        }


        public static List<Student> GetAll()
        {
            var rand = new Random();
            return Enumerable.Range(1, 1000)
                .Select(i => new Student
                {
                    Id = i,
                    Name = "Product " + i,
                    Score = rand.Next(100),
                    GraduateAt = DateTime.Now
                })
                .ToList();
        }




3. 在C:\test文件夹中查看结果

相关文章:

  • 在nand flash上实现JFFS2根文件文件系统
  • window API判断系统是否为闲置状态
  • 机器学习 -- 基本数学概念总结
  • 基于S3C2410的SD卡linux驱动工作原理(一)
  • R 学习 -- vector
  • 基于S3C2410的SD卡linux驱动工作原理(二)
  • R 学习 -- factor
  • linux设备模型中ktype的用法
  • R学习-- 数组和矩阵
  • spinlock与linux内核调度的关系
  • R学习 -- R中的five number
  • usb鼠标驱动注解及测试
  • R学习-- R中的绘图命令练习
  • Web Asp.net 中的Messagebox 判断..
  • R学习-- R连接 SQL SERVER
  • [译]前端离线指南(上)
  • bearychat的java client
  • bootstrap创建登录注册页面
  • docker容器内的网络抓包
  • Effective Java 笔记(一)
  • JavaScript 基本功--面试宝典
  • Java-详解HashMap
  • Laravel5.4 Queues队列学习
  • Linux下的乱码问题
  • magento 货币换算
  • Python 基础起步 (十) 什么叫函数?
  • Redis中的lru算法实现
  • WebSocket使用
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 工作中总结前端开发流程--vue项目
  • 检测对象或数组
  • 七牛云假注销小指南
  • 前端代码风格自动化系列(二)之Commitlint
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 实现菜单下拉伸展折叠效果demo
  • 使用Swoole加速Laravel(正式环境中)
  • 数据科学 第 3 章 11 字符串处理
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 我的面试准备过程--容器(更新中)
  • 一个完整Java Web项目背后的密码
  • 《码出高效》学习笔记与书中错误记录
  • ​MySQL主从复制一致性检测
  • # 数据结构
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (C++)八皇后问题
  • (Matalb分类预测)GA-BP遗传算法优化BP神经网络的多维分类预测
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (Note)C++中的继承方式
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (顺序)容器的好伴侣 --- 容器适配器
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失