一个基于Excel模板导出的组件(基于NPOI),配置完成模板和数据源即可一键导出,支持多 Sheet
导出。
这个项目初衷是为了解决公司的一个紧急需求,所以赶时间也没什么设计,很糙。。。。
- 通过
Nuget
直接安装。👉👉👉JiuLing.ExcelExport
- 下载最新的
Release
版本自己引用到项目。👉👉👉下载
-
将要导出的数据保存为
DataSet
对象。var ds = new DataSet(); //添加待导出数据 ds.Tables.Add(GetTable1()); ds.Tables.Add(GetTable2());
-
配置Excel模板。
-
列表形式的绑定:
将单元格配置为如下格式:{表名}-{字段名}-list。
例如:{dt1}-{Class}-list
该配置会自动查找DataSet
中的dt1
表,并且将Class
列绑定到Excel
的当前列。 -
单元格形式的绑定:
将单元格配置为如下格式:{表名}-{字段名}-0。
例如:{dtOther}-{Name}-0
该配置会自动查找DataSet
中的dtOther
表,并且将Name
列的第一行对应的值绑定到Excel
的当前单元格。
- 导出
//templateFile:模板文件的文件名 //destinationFile:要导出的文件名 //ds:数据源 var templateFile = Path.Combine(AppContext.BaseDirectory, "Template.xlsx"); var destinationFile = Path.Combine(AppContext.BaseDirectory, "test.xlsx"); var ds = new DataSet(); new TemplateData().Export(templateFile, destinationFile, ds);
- 列表绑定时,如果模板中对应的部分包含合并单元格,导出后的列表不会自动合并单元格。
- 由于
NPOI
对时间的格式支持的不是很友好,因此如果导出的字段为DateTime
类型,则会直接转换成String
类型填充,使用"yyyy-MM-dd HH:mm:ss"
进行格式化。
MIT License