首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >保存包时出错:无法使用marshaller将part /xl/sharedStrings.xml保存到流中

保存包时出错:无法使用marshaller将part /xl/sharedStrings.xml保存到流中
EN

Stack Overflow用户
提问于 2020-09-29 17:20:33
回答 1查看 1.2K关注 0票数 0

当一个大的.xlsx文件从java代码流到浏览器时,我得到了一个异常。

代码语言:javascript
运行
复制
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.

下载时间较长的文件会出现此问题,而下载时间较短的其他文件则工作正常。

EN

回答 1

Stack Overflow用户

发布于 2020-12-14 20:18:32

也有同样的问题。下面是我解决问题的方法:

将Workbook类更改为SXSSFWorkbook:

代码语言:javascript
运行
复制
Workbook wb = new SXSSFWorkbook();

如果您有自动调整大小功能(就像我一样),请将以下调用添加到Sheet对象:

代码语言:javascript
运行
复制
sheet.trackAllColumnsForAutoSizing();

非常重要!不要忘记处理工作簿,否则临时文件将不会被删除:

代码语言:javascript
运行
复制
wb.write(response.outputStream);
response.outputStream.close();
wb.dispose();

更多信息here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64116589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档