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
 

 

 

 

 

 

 

 

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