MyExcel,是一个集导入、导出、加密Excel等多项功能的工具包。
MyExcel是由Html2Excel更名而来,2.1.0版本及后续版本不再只提供导出功能,已全面覆盖Excel的导入、导出、加密等多项功能。
MyExcel的优势在于:
- 提供默认Excel构建器,直接输出简单Excel:无需编写任何模板,已提供简单API,可直接根据POJO数据列表输出
- 可生成任意复杂表格:本工具使用迭代单元格方式进行excel绘制,可生成任意复杂度excel;
- 支持常用背景色、边框、字体等样式设置:具体参见文档-Style-support(样式支持)部分;
- 支持生产者消费者模式导出:支持生产者消费者模式导出,无需一次性获取所有数据,分批获取数据配合SXSSF模式实现真正意义上海量数据导出;
本次版本升级提供大量改进,具体有:
- 新增DefaultExcelReader,支持Excel导入为List
; - DefaultExcelBuilder、DefaultStreamExcelBuilder新增接口,允许基于指定的workbook构建,方便一个workbook多sheet、多类型数据导出;
- DefaultExcelBuilder、DefaultStreamExcelBuilder新增noStyle(hasStyle)接口,允许无样式导出;
- 新增自动列宽策略,允许用户选择策略导出,策略包含:无自动列宽、自动列宽(时间消耗严重,效果好)、组件自动列宽(由工具包计算,性能好,但效果略差,此策略为默认策略);
- 修改DefaultStreamExcelBuilder默认样式为:无样式、无自动列宽;
- 支持在html文件中进行字体颜色设置;
- 导出工具类(AttachmentExport\FileExport)新增加密导出接口(只针对.xlsx文件有效);
- @ExcelTable新增defaultValue属性,允许当导出属性为NULL时设置默认值;
- @ExcelColumn新增defaultValue属性,允许当导出属性为NULL时设置默认值,覆盖@ExcelTable的defaultValue;
- 优化部分代码,减少内存占用以及性能提升;
具体使用请参见文档:https://github.com/liaochong/myexcel/wiki
示例参考请异步:https://github.com/liaochong/myexcel/tree/master/example/src/main/java/com/github/liaochong/example/controller
另外,针对部分使用者使用时有问题未及时回复感到十分抱歉,建议有问题在issues上提出,会及时得到回复!
导入示例代码:
List
导出示例代码:
List
Workbook workbook = DefaultExcelBuilder.of(ArtCrowd.class).build(dataList);
AttachmentExportUtil.export(workbook, "艺术生信息", response);