[alibaba/easyexcel]支持追加写入吗?

2024-05-21 493 views
7

支持在excel中追加写入吗?

回答

7

同问。感觉能通过先读获取目前行index然后写这样实现。

0

同问+1

5

可以读取到目前的行,也可以追加到下一行,但是覆盖了之前写入的数据,有人遇到吗?能否解决?

8

支持。withtemplet

3

有没有示例呀?我试了好多不行。

0

同问+1 请不要说fill 和 withtemplet 我想问的追加写入一个table或者报表之类的,而不是继续使用原来的模板进行数据的写入,或者是我不会用求大神指教

2

给你们个示例,我真佩服作者,回答这么多次就简单说用withtemplet,官网直接出个追加代码很难吗.或者直接添加个追加的api很难吗.我试了很多遍,最后迫不得已使用很古老的方式达到效果 思路就是判断文件是否存在,存在的话就用模版创建然后生成一个新的文件再重命名回来

String fileName = title + MyDateUtils.dateToStr(new Date(), MyDateUtils.MyDateFormatterEnum.TIME_FORMAT_YMD_G)+ ".xlsx"; File file = new File(fileName); if(file.exists()){ String tempName = title + MyDateUtils.dateToStr(new Date(), MyDateUtils.MyDateFormatterEnum.TIME_FORMAT_TIMESTMP)+ ".xlsx"; try (ExcelWriter excelWriter = EasyExcel.write(tempName, InvInDiffExcelDTO.class).needHead(false).withTemplate(fileName).build()) { WriteSheet writeSheet = EasyExcel.writerSheet("sheet1").build(); excelWriter.write(dtos, writeSheet); File newFile = new File(tempName); newFile.renameTo(file); } }else { try (ExcelWriter excelWriter = EasyExcel.write(fileName, InvInDiffExcelDTO.class).build()) { WriteSheet writeSheet = EasyExcel.writerSheet("sheet1").build(); excelWriter.write(dtos, writeSheet); } }