POI导出Excel的三种 workbook的区别

三种workbook分别是HSSFWorkbook、XSSFWorkbook、SXSSFWorkbook

第一种:HSSFWorkbook

针对EXCEL 2003版本,扩展名为.xls,此种的局限就是导出的行数最多为65535行。
因为导出行数受限,不足7万行,所以一般不会发送内存溢出(OOM)的情况

第二种:XSSFWorkbook

这种形式的出现是由于第一种HSSF的局限性产生的,因为其导出行数较少,XSSFWorkbook应运而生,其对应的是EXCEL2007+ ,扩展名为.xlsx ,最多可以导出104万行,不过这样就伴随着一个问题–OOM内存溢出。因为使用XSSFWorkbook创建的book sheet row cell 等是存在内存中的,并没有持久化到磁盘上,那么随着数据量的增大,内存的需求量也就增大。那么很有可能出现 OOM了,那么怎么解决呢?

第三种:SXSSFWorkbook  poi.jar 3.8+

SXSSFWorkbook可以根据行数将内存中的数据持久化写到文件中。
此种的情况就是设置最大内存条数,比如设置最大内存量为5000行, new SXSSFWookbook(5000),当行数达到 5000 时,把内存持久化写到文件中,以此逐步写入,避免OOM。这样就完美解决了大数据下导出的问题


学习POI移步至https://www.yiibai.com/apache_poi/apache_poi_core_classes.html

参考地址:
https://blog.csdn.net/qq_29631809/article/details/72785338

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值