最近项目组有很多报表需求,需要做Excel模板填充,由于EasyExcel相比POI更加便捷,选定Excel技术框架为阿里开源的EasyExcel
在使用过程中遇到一些坑,特别再此记录;
驼峰命名变量填充失败
如下图,事先准备好的模板如下,需要填充的数据已经用变量处理好了
填充其他数据没有任何问题,但是填充月均DAU这个数据时不生效,导出来数据没有这个值,如下图
部分代码如下:
ExcelWriter excelWriter = EasyExcel.write(filePath).withTemplate(templateFilePath) .build(); WriteSheet writeSheet = EasyExcel.writerSheet().build(); Result result = new Result(); result.setTotalAmt(xxxx"); result.setMmm("xxxx"); excelWriter.fill(result, writeSheet); excelWriter.fill(list, writeSheet); excelWriter.finish();
EasyExcel依赖:
<dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.2.4</version> </dependency>
处理方式:
排查问题后发现是 月均DAU变量mAvgDau 是 驼峰形式导致填充失败,将变量名 mAvgDau 替换为 mavgdau 后填充成功
Excel公式处理过的单元格填充失败
如下图:
由于使用了Excel公式 自定义单元格 设置了Excel模板文件的单元格格式,导致EasyExcel无法识别 {.} 形式的占位符
处理方式:
1.去掉公式,写入成功