Java操作Office的POI的SXSSFWorkbook的使用疑惑
参考代码
var filepath = "my.xlsx"; // 这文件有100w行数据,大小50m
var eclx = new XSSFWorkbook(filepath); // 执行到这句的时候,Xmx配置4G,都撑不住
var sxssfWorkbook = new SXSSFWorkbook(eclx,1000);
SXSSFWorkbook
号称是针对大数据的excel,进行部分行读取的新类型。然而,他的new过程,需要先new出一个XSSFWorkbook
,才可以实例化。但是往往在new XSSFWorkbook
的时候,内存就爆了,试问又如何能顺利执行到new SXSSFWorkbook
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
说明你没仔细看文档……
SXSSFWorkbook
能低内存是只支持写的大文件,并不支持读大文件。读大文件用 POI 的话目前只有 SAX 事件驱动或者
StreamingReader
这两种办法。100w数据就先考虑用csv,这么大的excel,自己打开估计都要一会时间吧