使用模板: 关键代码: 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();
导出结果:
问题:列表下方的行被覆盖,和格式错乱。