try (ExcelWriter excelWriter = EasyExcel.write(outputStream).withTemplate(templateFileName).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();
excelWriter.fill(eduHistories, fillConfig, writeSheet);
excelWriter.fill(workHistories, fillConfig, writeSheet);
excelWriter.fill(kinships, fillConfig, writeSheet);
excelWriter.fill(resumesVo, fillConfig, writeSheet);
}
我的模板:
异常提示模板里面有三个列表需要填充,但是不会新添一行,只会向下覆盖,也使用过forceNewRow(Boolean.TRUE)无效,easyexcel版本为最新 3.2.1版本
问题描述