最近在做excel的导入导出工作,参考了几个框架easypoi,hutool,easyexcel,做一些总结。
1.easypoi 官网:http://easypoi.mydoc.io/
优点:功能丰富,比较方便。有大数据量导出的功能
缺点:没有大数据量导入的功能
2.hutool 官网:https://hutool.cn/docs/#/poi/%E6%A6%82%E8%BF%B0
优点:大数据量导入导出的功能
缺点:功能比较简单,但也满足日常使用。(目前项目中使用的)
3.easyexcel 官网:https://github.com/alibaba/easyexcel
优点:大数据量导入导出的功能
缺点:功能比较简单,但也满足日常使用。
4.使用hutool的过程中遇到的问题
4.1在docker镜像中 ExcelUtil.getBigWriter(destFile); 报nullpointter。
解决方法:docker镜像增加fontconfig ttf-dejavu字体支持
4.2 大数据量的导入一行一行读取,回调处理。
4.3 别名使用LinkedhashMap就会按照别名加入的顺序。
writer.setHeaderAlias(Constants.fileNameExport);
Map<String, String> fileNameExport= new LinkedHashMap() {
{
put("oldGoodsNo", "旧系统编码");
put("goodsNo", "新系统编码");
put("goodsName", "通用名");
put("curname", "商品名");
put("barCode", "国际条形码");
put("goodsSpec", "规格");
put("apprDocNo", "批准文号");
put("goodsUnit", "单位");
put("curnameCode", "助记码");
put("prodArea", "产地");
put("factoryShortname", "生产厂家");
put("dataType", "类型");
put("checkStatus", "检查状态");
put("errorFlag", "错误反馈");
put("updatedStatus", "修正状态");
put("updatedByName", "修正人");
}
};