HSSF是POI工程對Excel 97(-2007)文件操作的純Java實現
XSSF是POI工程對Excel 2007 OOXML (.xlsx)文件操作的純Java實現
從POI 3.8版本開始,提供了一種基於XSSF的低內存占用的API----SXSSF
SXSSF通過一個滑動窗口來限制訪問Row的數量從而達到低內存占用的目錄,XSSF可以訪問所有行。舊的行數據不再出現在滑動窗口中並變得無法訪問,與此同時寫到磁盤上。
在自動刷新的模式下,可以指定窗口中訪問Row的數量,從而在內存中保持一定數量的Row。當達到這一數量時,在窗口中產生新的Row數據,並將低索引的數據從窗口中移動到磁盤中。
或者,滑動窗口的行數可以設定成自動增長的。它可以根據需要周期的根據一次明確的flushRow(int keepRows)調用來進行修改。
注意:針對 SXSSF Beta 3.8下,會有臨時文件產生,比如:
poi-sxssf-sheet4654655121378979321.xml
文件位置:java.io.tmpdir這個環境變量下的位置
Windows 7下是C:\Users\xxxxxAppData\Local\Temp
Linux下是 /var/tmp/
要根據實際情況,看是否刪除這些臨時文件
官方也提供了一些解決方式:
https://issues.apache.org/bugzilla/show_bug.cgi?id=53493
與XSSF的對比
在一個時間點上,只可以訪問一定數量的數據
不再支持Sheet.clone()
不再支持公式的求值
特性匯總