HSSF,XSSF和SXSSF的區別


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() 
不再支持公式的求值 



特性匯總 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM