导航

目   录:基于NPOI的报表引擎——ExcelReport

下一篇:ExcelReport源码解析

概述

本篇将通过导出学生成绩的示例演示“使用ExcelReport导出Excel”的步骤。

示例(导出学生成绩明细)

步骤一:设计Excel模板

首先,使用Excel软件设计模板(我没有安装MSOffice,用LibreOffice Calc做的演示)。在模板中要填充数据的位置用$[ParameterName]代替。

步骤二:生成模板填充规则文件

使用模板填充规则文件生成工具(ERTool)为步骤一设计的Excel模板生成填充规则文件。

步骤三:为模板填充数据

实现代码(导出到本地):

//实例化一个参数容器,并加载模板填充规则文件
ParameterCollection collection = new ParameterCollection();
collection.Load(@"Template\Template.xml");
 
//实例化一个元素格式化器列表
List<ElementFormatter> formatters = new List<ElementFormatter>();
formatters.Add(new CellFormatter(collection["GradeDetail", "Dept"], "某某学院"));   //添加一个单元格格式化器
formatters.Add(new CellFormatter(collection["GradeDetail", "Class"], "某某班级"));
formatters.Add(new CellFormatter(collection["GradeDetail", "StudNo"], "2009*****"));
formatters.Add(new CellFormatter(collection["GradeDetail", "StudName"], "韩兆新"));
formatters.Add(new CellFormatter(collection["GradeDetail", "ExportDate"], DateTime.Now));
 
List<GradeInfo> gradeInfoList = new List<GradeInfo>();
gradeInfoList.Add(new GradeInfo() { CGPA = 18, CourseID = "KC-0001", CourseName = "高等数学", CourseType = "理论课", Credit = 6, EvaluationMode = "考试", GainCredit = 6, GPA = 3, Grade = 86, StudyNature = "初修", Type = "必修课" });
gradeInfoList.Add(new GradeInfo() { CGPA = 2, CourseID = "KC-0002", CourseName = "计算机应用基础", CourseType = "理论课", Credit = 2, EvaluationMode = "考试", GainCredit = 2, GPA = 1, Grade = 93, StudyNature = "初修", Type = "必修课" });
gradeInfoList.Add(new GradeInfo() { CGPA = 9, CourseID = "KC-0003", CourseName = "C程序设计", CourseType = "理论课", Credit = 3, EvaluationMode = "考试", GainCredit = 3, GPA = 3, Grade = 97, StudyNature = "初修", Type = "必修课", Remark = "备注信息" });
 
//添加一个Table格式化器
formatters.Add(new TableFormatter<GradeInfo>(collection["GradeDetail", "CourseID"].X, gradeInfoList,
    new TableColumnInfo<GradeInfo>(collection["GradeDetail", "CGPA"].Y, t => t.CGPA),
    new TableColumnInfo<GradeInfo>(collection["GradeDetail", "CourseID"].Y, t => t.CourseID),
    new TableColumnInfo<GradeInfo>(collection["GradeDetail", "CourseName"].Y, t => t.CourseName),
    new TableColumnInfo<GradeInfo>(collection["GradeDetail", "CourseType"].Y, t => t.CourseType),
    new TableColumnInfo<GradeInfo>(collection["GradeDetail", "Credit"].Y, t => t.Credit),
    new TableColumnInfo<GradeInfo>(collection["GradeDetail", "EvaluationMode"].Y, t => t.EvaluationMode),
    new TableColumnInfo<GradeInfo>(collection["GradeDetail", "GainCredit"].Y, t => t.GainCredit),
    new TableColumnInfo<GradeInfo>(collection["GradeDetail", "GPA"].Y, t => t.GPA),
    new TableColumnInfo<GradeInfo>(collection["GradeDetail", "Grade"].Y, t => t.Grade),
    new TableColumnInfo<GradeInfo>(collection["GradeDetail", "Remark"].Y, t => t.Remark),
    new TableColumnInfo<GradeInfo>(collection["GradeDetail", "StudyNature"].Y, t => t.StudyNature),
    new TableColumnInfo<GradeInfo>(collection["GradeDetail", "Type"].Y, t => t.Type)
    ));
//导出文件到本地
Export.ExportToLocal(@"Template\Template.xls", saveFileDlg.FileName,
    new SheetFormatterContainer("GradeDetail", formatters));

实现代码(导出到Web):

//实例化一个参数容器,并加载模板填充规则文件
ExcelReport.ParameterCollection collection = new ExcelReport.ParameterCollection();
collection.Load(Server.MapPath(@"Template\Template.xml"));
 
//实例化一个元素格式化器列表
List<ElementFormatter> formatters = new List<ElementFormatter>();
formatters.Add(new CellFormatter(collection["GradeDetail", "Dept"], "某某学院"));   //添加一个单元格格式化器
formatters.Add(new CellFormatter(collection["GradeDetail", "Class"], "某某班级"));
formatters.Add(new CellFormatter(collection["GradeDetail", "StudNo"], "2009*****"));
formatters.Add(new CellFormatter(collection["GradeDetail", "StudName"], "韩兆新"));
formatters.Add(new CellFormatter(collection["GradeDetail", "ExportDate"], DateTime.Now));
 
List<GradeInfo> gradeInfoList = new List<GradeInfo>();
gradeInfoList.Add(new GradeInfo() { CGPA = 18, CourseID = "KC-0001", CourseName = "高等数学", CourseType = "理论课", Credit = 6, EvaluationMode = "考试", GainCredit = 6, GPA = 3, Grade = 86, StudyNature = "初修", Type = "必修课" });
gradeInfoList.Add(new GradeInfo() { CGPA = 2, CourseID = "KC-0002", CourseName = "计算机应用基础", CourseType = "理论课", Credit = 2, EvaluationMode = "考试", GainCredit = 2, GPA = 1, Grade = 93, StudyNature = "初修", Type = "必修课" });
gradeInfoList.Add(new GradeInfo() { CGPA = 9, CourseID = "KC-0003", CourseName = "C程序设计", CourseType = "理论课", Credit = 3, EvaluationMode = "考试", GainCredit = 3, GPA = 3, Grade = 97, StudyNature = "初修", Type = "必修课", Remark = "备注信息" });
 
//添加一个Table格式化器
formatters.Add(new TableFormatter<GradeInfo>(collection["GradeDetail", "CourseID"].X, gradeInfoList,
    new TableColumnInfo<GradeInfo>(collection["GradeDetail", "CGPA"].Y, t => t.CGPA),
    new TableColumnInfo<GradeInfo>(collection["GradeDetail", "CourseID"].Y, t => t.CourseID),
    new TableColumnInfo<GradeInfo>(collection["GradeDetail", "CourseName"].Y, t => t.CourseName),
    new TableColumnInfo<GradeInfo>(collection["GradeDetail", "CourseType"].Y, t => t.CourseType),
    new TableColumnInfo<GradeInfo>(collection["GradeDetail", "Credit"].Y, t => t.Credit),
    new TableColumnInfo<GradeInfo>(collection["GradeDetail", "EvaluationMode"].Y, t => t.EvaluationMode),
    new TableColumnInfo<GradeInfo>(collection["GradeDetail", "GainCredit"].Y, t => t.GainCredit),
    new TableColumnInfo<GradeInfo>(collection["GradeDetail", "GPA"].Y, t => t.GPA),
    new TableColumnInfo<GradeInfo>(collection["GradeDetail", "Grade"].Y, t => t.Grade),
    new TableColumnInfo<GradeInfo>(collection["GradeDetail", "Remark"].Y, t => t.Remark),
    new TableColumnInfo<GradeInfo>(collection["GradeDetail", "StudyNature"].Y, t => t.StudyNature),
    new TableColumnInfo<GradeInfo>(collection["GradeDetail", "Type"].Y, t => t.Type)
    ));
//导出文件到Web
Export.ExportToWeb(Server.MapPath(@"Template\Template.xls"), "GradeDetail",
    new SheetFormatterContainer("GradeDetail", formatters));

导出文件截图:

源码下载:

下载地址:https://github.com/hanzhaoxin/ExcelReport

作者:韩兆新
出处:http://hanzhaoxin.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

分类: [11]我的开源
标签: ExcelReport
本文转自韩兆新博客博客园博客,原文链接:http://www.cnblogs.com/hanzhaoxin/p/4232575.html,如需转载请自行联系原作者

ExcelReport第一篇:使用ExcelReport导出Excel相关推荐

  1. 分享我基于NPOI+ExcelReport实现的导入与导出EXCEL类库:ExcelUtility (续2篇-模板导出综合示例)...

    自ExcelUtility类推出以来,经过项目中的实际使用与不断完善,现在又做了许多的优化并增加了许多的功能,本篇不再讲述原理,直接贴出示例代码以及相关的模板.结果图,以便大家快速掌握,另外这些示例说 ...

  2. ExcelReport第二篇:ExcelReport源码解析

    2019独角兽企业重金招聘Python工程师标准>>> 导航 目   录:基于NPOI的报表引擎--ExcelReport 上一篇:使用ExcelReport导出Excel 下一篇: ...

  3. 【工具篇】java导出excel工具类,多种模式自动配置,绝对值得你收藏

    文章目录 项目环境: 实现功能: 工具类实现 定义参数bean:ExportExcelBean.java 定义导出excel的表格主题:ExportExcelTheme.java [重点]导出exce ...

  4. Asp.net高效导出excel篇之Aspose导出excel

    上周在博客中写了一篇<Asp.net高效导出Excel篇>在发布之后收到很多热心网友的建议--使用Excel第三方引擎如NOPI.Aspose.cell等导出Excel,优点:效率高.不需 ...

  5. 《WebForm开发系列高级篇》Item2导出EXCEL通用类(GridView,DataList,Repeater,DetailView)

    1.导出效果图: 2.C#导出EXCEL通用类源代码: using System; using System.Data; using System.Configuration; using Syste ...

  6. java导出Excel增加下拉框选项,解决小数据量和大数据量下拉框选项的问题

    文章目录 java导出Excel增加下拉框选项 一.小数据量情况 二.大数据量情况 java导出Excel增加下拉框选项(java结合easyExcel) 添加传参模型ConsumablesAddDT ...

  7. JAVA导出Excel通用工具类——第一篇:详细介绍POI 导出excel的多种复杂情况,包括动态设置筛选、动态合并横向(纵向)单元格等多种复杂情况——保姆级别,真的不能再详细了,代码拿来即用)

    JAVA导出Excel通用工具--第一篇:详细介绍POI 导出excel的多种复杂情况,包括动态设置筛选.动态合并横向(纵向)单元格等多种复杂情况--保姆级别,真的不能再详细了,封装通用工具类,代码拿 ...

  8. (转)另一篇:VC导出数据到EXCEL

    另一篇:VC导出数据到EXCEL 2010-08-28 17:03:47|  分类: 默认分类 |  标签: |字号大中小 订阅 我们制作应用软件的时候,经常要把结果以报表的形式输出,当前使用较为广泛 ...

  9. 实战篇-通用的页面列表导出Excel控件

    首先,先上下图片,好理解一下今天要讲内容: 第一张图: 第二张图: 说明: 在很多系统中,或者是一些网站的后台,包括秋色园的后台,通过都会有一些相同的工具栏目,比如上面的"导出"按 ...

最新文章

  1. HTTP网页请求过程
  2. 使用Silverlight3中的DataPager实现服务器端分页
  3. 卷积神经网络 卷积的概念
  4. mysql5.6视频_网易视频云:MySQL 5.6 5.7最优配置文件模板
  5. armbian docker Chrome_一起学docker06-docker网络
  6. Python脚本实现启停app获取资源占比信息
  7. 我总结的 jsonp
  8. 巨详细的iphone新手教程
  9. C# Microsoft.Office.Interop.Word 将多个word合成一个并插入图片 转换成pdf
  10. html右键头,右箭头怎么打 word怎么输入向右的箭头
  11. -bash: wget: 未找到命令
  12. 《信息系统行锁等待的成因分析及智能化解决方案》
  13. vue el-table 表格宽度无法缩小自适应
  14. react中的keep-alive功能
  15. 2021年保育员(中级)考试及保育员(中级)考试资料
  16. Linux添加环境变量,以配置MySQL环境怕变量为例
  17. spring boot和spring cloud版本对应关系
  18. 数据集转换成LMDB格式
  19. 为什么一定要从DevOps走向BizDevOps?
  20. 2021年T电梯修理最新解析及T电梯修理模拟试题

热门文章

  1. 华为交换机eth口作用_华为交换机ETH-TRUNK的自协商陷阱
  2. 美国爱达荷州劳工部系统遭黑 超17万人求职数据被盗
  3. 全套恒压供水一拖三程序图纸(看描述)恒压供水一拖三图纸程序
  4. 幼儿教师计算机考核方案,欢欢民艺幼儿园语言文字规范化工作教师考核标准
  5. (新)颈椎病康复指南
  6. 在项目管理过程中,如何控制项目预算或成本?
  7. springboot 乐观锁重试机制
  8. 【SDC】揭开无人驾驶的神秘面纱
  9. 【实例】python 在cmd 中如何清屏?
  10. 二元函数对xy同时求导_让向量、矩阵和张量的求导更简洁些吧