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

阅读 7.2k
2 个回答

说明你没仔细看文档……

SXSSFWorkbook 能低内存是只支持的大文件,并不支持大文件。

读大文件用 POI 的话目前只有 SAX 事件驱动或者 StreamingReader 这两种办法。

SXSSF (package: org.apache.poi.xssf.streaming) is an API-compatible streaming extension of XSSF to be used when very large spreadsheets have to be produced, and heap space is limited.

100w数据就先考虑用csv,这么大的excel,自己打开估计都要一会时间吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题