Excel导出超过65535行报异常

工程中在使用POI导出Excel数据,某次因为导出的数据量比较大就报了下面的错误:

查了下资料,了解到问题在于使用了HSSFWorkbookHSSFWorkbook用来操作Excel2003以前(包括2003)的版本,限制了每个Sheet导出的行数至多为65535行。

要修复这个问题可以考虑使用XSSFWorkbook或者SXSSFWorkbook。如果要导出的数据量特别大,建议使用后者。因为XSSFWorkbook会将全部要写入Excel中的数据保存在内存中,数据量太大的话就会导致内存溢出错误。

SXSSFWorkbook是在POI3.8版本时出现的,对XSSFWorkbook做了一些优化,通过采用将一定数量的数据写入硬盘临时文件的机制减轻了内存的压力。

参考文档

HSSF XSSF SXSSF

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据