最近項目組有很多報表需求,需要做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.去掉公式,寫入成功
