MyExcel,是一个集导入、导出、加密Excel等多项功能的java工具包。
导入:提供简便的API,读取Excel内容,并转化为List< Bean >。
导出:可快速导出海量数据的简单列表,可生成高复杂度布局的Excel,复杂布局指的是包含多种不规则合并单元格、背景色、字体大小、斜体等。
优点:
- 可生成任意复杂表格:本工具使用迭代单元格方式进行excel绘制,可生成任意复杂度excel,自适应宽度、高度;
- 零学习成本:使用html作为模板,学习成本几乎为零;
- 支持常用背景色、边框、字体等样式设置:具体参见文档-Style-support(样式支持)部分;
- 支持.XLS、.XLSX:支持生成.xls、.xlsx后缀的excel;
- 支持公式导出:支持Excel模板中设置公式,降低服务端的计算量;
- 支持低内存SXSSF模式:支持低内存的SXSSF模式,可利用极低的内存生成.xlsx;
- 支持生产者消费者模式导出:支持生产者消费者模式导出,无需一次性获取所有数据,分批获取数据配合SXSSF模式实现真正意义上海量数据导出;
- 支持多种模板引擎:已内置Freemarker、Groovy、Beetl等常用模板引擎Excel构建器(详情参见文档Getting started),推荐使用Beetl模板引擎(Beetl文档);
- 提供默认Excel构建器,直接输出简单Excel:无需编写任何html,已内置默认模板,可直接根据POJO数据列表输出;
- 支持一次生成多sheet:以table作为sheet单元,支持一份excel文档中多sheet导出;
本次发布点如下:
- 模板导出支持公式导出;
- 支持字段原生类型导出(非全部为String);
- 支持行隐藏;
按公式导出步骤:
- 在模板文件
td
上添加属性:formula
,无需设定具体值<table> <tr> <td>1</td> </tr> <tr> <td>19</td> </tr> <tr> <td formula>SUM(A1:A2)</td> </tr> </table>
td
中书写具体的公式即可,如:SUM(A1:A2
默认情况下,程序会自动判别单元格内容类型,目前自动识别类型有以下三种:
- String
- Double
- Boolean
时间类型暂时以字符串形式输出。
设置为字符串类型数据可做如下操作:
在模板文件td
上增加属性string
设置该单元格类型为字符串
<table>
<tr>
<td string>19</td>
</tr>
</table>
设置为布尔类型数据可做如下操作:
在模板文件td
上增加属性boolean
设置该单元格类型为布尔
<table>
<tr>
<td boolean>true</td>
</tr>
</table>
具体使用,请移步:https://github.com/liaochong/myexcel/wiki
转自 https://www.oschina.net/news/106417/myexcel-2-2-0-released