当一个大的.xlsx文件从java代码流到浏览器时,我得到了一个异常。
Exception: Fail to save: an error occurs while saving the package:
The part /xl/sharedStrings.xml fail to be saved in the stream with marshaller org.apache.poi.openxml4j.opc.internal.marshallers.DefaultMarshaller@32c7a1ed.下载时间较长的文件会出现此问题,而下载时间较短的其他文件则工作正常。
发布于 2020-12-14 20:18:32
也有同样的问题。下面是我解决问题的方法:
将Workbook类更改为SXSSFWorkbook:
Workbook wb = new SXSSFWorkbook();如果您有自动调整大小功能(就像我一样),请将以下调用添加到Sheet对象:
sheet.trackAllColumnsForAutoSizing();非常重要!不要忘记处理工作簿,否则临时文件将不会被删除:
wb.write(response.outputStream);
response.outputStream.close();
wb.dispose();更多信息here
https://stackoverflow.com/questions/64116589
复制相似问题