Java HSSFworkbook XSSFworkbook SXSSFworkbook三者有什么区别呢?
下文笔者讲述HSSFworkbook,XSSFworkbook,SXSSFworkbook三者区别,如下所示
HSSFworkbook,XSSFworkbook,SXSSFworkbook区别
三者的区别:
1.导出文件的后缀名
2.导出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
注意事项:
使用SXSSFworkbook时,会产生临时文件,并存放于java.io.tmpdir目录下
如:
Windows 10存放于C:\Users\xxxxxAppData\Local\Temp
Linux存放于 /var/tmp/
例
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);
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


