java xssfworkbook_Java HSSFworkbook,XSSFworkbook,SXSSFworkbook区别简述

Java HSSFworkbook,XSSFworkbook,SXSSFworkbook区别简述

一、HSSFworkbook,XSSFworkbook,SXSSFworkbook区别简述

用JavaPOI导出Excel时,我们会考虑到Excel版本及数据量的问题。针对不同的Excel版本,要采用不同的工具类。

HSSFWorkbook:是操作Excel2003以前(包括2003)的版本,扩展名是.xls;

XSSFWorkbook:是操作Excel2007的版本,扩展名是.xlsx;

对于不同版本的EXCEL文档要使用不同的工具类,如果使用错了,会提示如下错误信息。

org.apache.poi.openxml4j.exceptions.InvalidOperationException

org.apache.poi.poifs.filesystem.OfficeXmlFileException

从POI 3.8版本开始,提供了一种基于XSSF的低内存占用的API----SXSSF

当数据量超出65536条后,在使用HSSFWorkbook或XSSFWorkbook,程序会报OutOfMemoryError:Javaheap space;内存溢出错误。这时应该用SXSSFworkbook。

注意:针对 SXSSF Beta 3.8下,会有临时文件产生,比如:

poi-sxssf-sheet4654655121378979321.xml

文件位置:java.io.tmpdir这个环境变量下的位置

Windows 7下是C:\Users\xxxxxAppData\Local\Temp

Linux下是 /var/tmp/

要根据实际情况,看是否删除这些临时文件

与XSSF的对比

在一个时间点上,只可以访问一定数量的数据

不再支持Sheet.clone()

不再支持公式的求值

在使用Excel模板下载数据时将不能动态改变表头,因为这种方式已经提前把excel写到硬盘的了就不能再改;

二、代码实现

input =classPathResource.getInputStream();

input=classPathResource.getInputStream();

Workbook wb= null;

HSSFWorkbook hwb=null;

XSSFWorkbook xwb=null;

SXSSFWorkbook swb= null;

Sheet sh= null;

wb=WorkbookFactory.create(input);

hwb=(HSSFWorkbook) WorkbookFactory.create(input);

xwb=(XSSFWorkbook) WorkbookFactory.create(input);

swb= new SXSSFWorkbook(xwb,1000);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值