easyexcel icon indicating copy to clipboard operation
easyexcel copied to clipboard

如何在所有单元格都写入完成后统一处理?SheetWriteHandler没有afterSheetDispose

Open xi-xi-jun opened this issue 1 year ago • 2 comments

建议先去看文档

快速开始常见问题

自定义数据情况下, 如何在所有单元格都写入完成后统一处理?例如: 在当前sheet写入完成之后,如果想再进行一些对sheet的补充操作,该怎么操作?我发现SheetWriteHandler没有afterSheetDispose这个方法。

异常提示

大家尽量把问题一次性描述清楚,然后贴上全部异常,这样方便把问题一次性解决掉。 至少大家要符合一个原则就是,能让其他人复现出这个问题,如果无法复现,肯定无法解决。

问题描述

xi-xi-jun avatar Sep 12 '24 07:09 xi-xi-jun

使用WorkbookWriteHandler#afterWorkbookDispose方法,但是这个方法也有一些坑,我最近使用的时候发现了,参考我在这里的描述:getRow返回null

ghost avatar Oct 14 '24 03:10 ghost

使用WorkbookWriteHandler#afterWorkbookDispose方法,但是这个方法也有一些坑,我最近使用的时候发现了,参考我在这里的描述:getRow返回null

debug了一下,发现是因为他用了SXSSFWorkbook,导致最多100个row放到内存里去,其他全在磁盘。所以可以参考下面的写法: EasyExcel.write(outputStream, exportType.getClassType()) .inMemory(true) .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) .registerWriteHandler(new RoleNameBasedMergeHandler()) .sheet(exportType.getSheetName()).doWrite(data);

ghost avatar Oct 14 '24 03:10 ghost