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

ExcelReport第一篇:使用ExcelReport导出Excel

导航

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

下一篇:ExcelReport源码解析

概述

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

 

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

步骤一:设计Excel模板

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

image

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

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

image

步骤三:为模板填充数据

 

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

//实例化一个参数容器,并加载模板填充规则文件
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));

导出文件截图:

image

 

源码下载:

image

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

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

本文转自韩兆新博客博客园博客,原文链接:http://www.cnblogs.com/hanzhaoxin/p/4232575.html,如需转载请自行联系原作者

相关文章:

  • select空间提交form表单传递参数
  • 反射:InvokeMethod 活动调用多种方法的方法配置要点
  • wampserver配置https
  • 小型软件项目开发流程探讨
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • iOS根据网络图片的size大小设置UIImageView的大小
  • sqlmap 本地安装
  • Ubuntu server 14.04升级16.04
  • 提取CString中的汉字及个数
  • connect-flash 用法详解
  • JavaScript的arguements
  • Perceptual Losses for Real-Time Style Transfer and Super-Resolution and Super-Resolution 论文笔记...
  • 微服务学习笔记二:Eureka服务注册发现
  • php知识总结(二)
  • Java]Socket和ServerSocket服务器端接受数据
  • 【剑指offer】让抽象问题具体化
  • ES6之路之模块详解
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • JavaScript-Array类型
  • React-Native - 收藏集 - 掘金
  • Spring核心 Bean的高级装配
  • vue脚手架vue-cli
  • webgl (原生)基础入门指南【一】
  • 创建一种深思熟虑的文化
  • 精彩代码 vue.js
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 如何胜任知名企业的商业数据分析师?
  • 世界上最简单的无等待算法(getAndIncrement)
  • 消息队列系列二(IOT中消息队列的应用)
  • 远离DoS攻击 Windows Server 2016发布DNS政策
  • 正则表达式
  • 湖北分布式智能数据采集方法有哪些?
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • #微信小程序:微信小程序常见的配置传值
  • $ git push -u origin master 推送到远程库出错
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (6)添加vue-cookie
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (HAL库版)freeRTOS移植STMF103
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (九)信息融合方式简介
  • (力扣)循环队列的实现与详解(C语言)
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .Net7 环境安装配置
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • .Net环境下的缓存技术介绍
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • .NET企业级应用架构设计系列之结尾篇
  • @autowired注解作用_Spring Boot进阶教程——注解大全(建议收藏!)
  • [<MySQL优化总结>]
  • [android学习笔记]学习jni编程