[alibaba/easyexcel]根据模板填充数据,列表下方的写死的行被覆盖。

2024-05-11 291 views
9

使用模板: image 关键代码: ExcelWriter excelWriter = EasyExcel.write(output).withTemplate(pathFile+ScmMsgConstant.EXPORT_PURCHASE_ORDER_LINE_EXPORT_TEMPLEATE_PATH).build(); WriteSheet writeSheet = EasyExcel.writerSheet().build(); // 这里注意 入参用了forceNewRow 代表在写入list的时候不管list下面有没有空行 都会创建一行,然后下面的数据往后移动。默认 是false,会直接使用下一行,如果没有则创建。 // forceNewRow 如果设置了true,有个缺点 就是他会把所有的数据都放到内存了,所以慎用 // 简单的说 如果你的模板有list,且list不是最后一行,下面还有数据需要填充 就必须设置 forceNewRow=true 但是这个就会把所有数据放到内存 会很耗内存 // 如果数据量大 list不是最后一行 参照下一个 FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).direction(WriteDirectionEnum.VERTICAL).build(); //map中的数据 excelWriter.fill(dataMap,fillConfig, writeSheet); //放入的是list列表中的数据 excelWriter.fill(orderLineDtoList, fillConfig, writeSheet);

        excelWriter.finish();

导出结果: image

问题:列表下方的行被覆盖,和格式错乱。

回答

8

能否提供下模板

3

不知道有没有什么解决方案

3

用的哪个版本呢?还有模板最好提供下,不然别人不方便复现

5

已经解决了 是我项目中有其他版本的poi

1

请问是怎么解决的?