java组件——poi

一、简单了解一下

1.poi属于Apache产品,具体使用请参考官网地址:http://poi.apache.org/

2.Apache poi 是java编写、免费开源、跨平台java api。

3.poi英文全拼Poor Obfuscation Implementation,翻译为“可怜的模糊实现”。

4.Apache poi 提供api给java对Microsoft Office格式文档读写的功能。

 二、excle使用

(一)、api分类

POI-HSSF:Excel '97(-2007)文件格式的纯Java实现,具体使用https://blog.csdn.net/qq_39630314/article/details/102544609

POI-XSSF :Excel 2007 OOXML(.xlsx)文件格式的纯Java实现,具体使用

POI-SXSSF:从3.8-beta3开始,POI提供了基于XSSF的低内存占用的SXSSF API。,具体使用

(二)、POI-SXSSF

1、介绍

SXSSF是XSSF的API兼容流扩展,可用于必须生成非常大的电子表格且堆空间有限的情况。SXSSF通过限制对滑动窗口内的行的访问来实现其低内存占用,而XSSF允许对文档中的所有行进行访问。不再存在于窗口中的较旧的行由于被写入磁盘而变得不可访问。

2.优点

支持大批量数据,并且速度快很多

3.缺点

由于实现的流性质,与XSSF相比存在以下限制:

  • 在某个时间点只能访问有限数量的行。
  • 不支持Sheet.clone()。
  • 不支持公式评估

4.常识

针对 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写到硬盘的了就不能再改了

(三)使用注意事项 

1.数据限制

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

 

2.错误使用版本

对于不同版本的EXCEL文档要使用不同的工具类,

如果使用错了,会提示如下错误信息。

org.apache.poi.openxml4j.exceptions.InvalidOperationException

org.apache.poi.poifs.filesystem.OfficeXmlFileException
 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章