什么是ExcelTemplate
ExcelTemplate
项目是一个基于Excel模板,依靠配置文件描述导出过程的Excel导出工具。
它提供了大量适用于各种场景的常用配置(导出规则),同时提供一些供外部使用的扩展接口,以满足一些特殊应用。
比较适合于具有大量Excel导出功能的场景中。
ExcelTemplate依赖于NPOI项目实现对Excel的底层操作。
源码下载地址:https://github.com/gezhonglei/ExcelTemplate
为什么要基于Excel模板?
NPOI当然支持对Excel单元格各类外观样式的操作。但是基于外观的操作过于复杂(这跟NPOI工具本身没关系),可能比真正要导出数据的展示方式要写更多的代码。
但是从实际应用中发现,导出Excel的外观样式要求并不是太高,而且样式几乎都是有规律。
因此ExcelTemplate
项目采用了基于Excel模板导出的方式:先手动制定一个Excel模板,然后从Excel模板中读取样式,然后在相同数据空间中复用这些样式。
这样,既消除了繁杂的样式书写逻辑,又保证了外观样式可自由配置。
使用配置文件描述导出规则有什么好处呢?
ExcelTemplate将一些常用导出规则固化为一个个配置项,导出数据的控制逻辑(在哪里输出?怎么输出?)完全由配置文件ExportConfig.xml
定义。
为满足大多数场景,描述导出规则的这些配置项被定义到适宜的粒度,并可在各种场景中自由组合使用。
使用配置实现的导出逻辑,完全不用关心底层代码逻辑,在需求多变的环境中,只需修改配置相关参数即可,避免了修改代码逻辑和重新编译部署带来的麻烦。
为什么选择NPOI?
使用NPOI直接对Excel文档以文件流的直接处理,而不用安装并调用Office相关组件,大大简化了开发和部署的麻烦工作,而且性能较之office组件高很多。
如何使用?
* 你需要做什么 *
使用ExcelTemplate
你需要做以下三步:
+ 手动制作Excel模板
+ 在ExcelTemplate.xml
配置文件中配置使用什么数据,在哪里输出数据,怎么输出
+ 提供数据源DataSet
,并使用ExportMain.Export()方法导出
* 示例 *
下面将以导出一个包含标题、图片、数据表等数据项的简单Excel为例说明ExcelTemplate
使用步骤。
1.准备Excel模板: Demo.xlsx
2.配置导出规则
<?xml version="1.0"?>
<ExportConfig xmlns="http://tempuri.org/schema.xsd">
<ExportProduct name="Demo" description="An example" template="ExcelTemplate\Demo.xlsx">
<DataSource name="dsname">
<DataList name="SaveSource" value="√,"/>
<DataList name="WaySource" value="手工录入,自动产生,列表/弹出框选择"/>
</DataSource>
<Sheets>
<Sheet name="Sheet1">
<Cells>