最近在使用Java POI导出Excel,使用的是XSSFWorkbook ,遇到数据量超过10w的话程序会爆内存溢出的错误,将XSSFWorkbook 换成SXSSFWorkbook 即可

SXSSFWorkbook 需要 poi-ooxml 包 3.8 及以上开始支持,本质是一个 XSSFWorkbook 类( Excel2007 ),它使用的方式是采用 硬盘空间 来大幅降低 堆内存的占用,在系统的临时文件夹目录创建一个临时文件,然后将所有大于约定行数的数据都存入临时文件,而不是全部放在内存中,内存中只存放最新的的约定条数的数据,从而实现以硬盘空间换取内存空间,避免内存溢出 

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐