POI匯出Excel的三種 workbook的區別

2022-07-01 17:27:16 字數 707 閱讀 1718

三種workbook分別是hssfworkbook、xssfworkbook、sxssfworkbook

第一種:hssfworkbook

針對excel 2003版本,擴充套件名為.xls,此種的侷限就是匯出的行數最多為65535行。

因為匯出行數受限,不足7萬行,所以一般不會傳送記憶體溢位(oom)的情況

第二種:xssfworkbook

這種形式的出現是由於第一種hssf的侷限性產生的,因為其匯出行數較少,xssfworkbook應運而生,其對應的是excel2007+ ,擴充套件名為.xlsx ,最多可以匯出104萬行,不過這樣就伴隨著乙個問題–oom記憶體溢位。因為使用xssfworkbook建立的book sheet row cell 等是存在記憶體中的,並沒有持久化到磁碟上,那麼隨著資料量的增大,記憶體的需求量也就增大。那麼很有可能出現 oom了,那麼怎麼解決呢?

第三種:sxssfworkbookpoi.jar 3.8+

sxssfworkbook可以根據行數將記憶體中的資料持久化寫到檔案中。

此種的情況就是設定最大記憶體條數,比如設定最大記憶體量為5000行, new sxssfwookbook(5000),當行數達到 5000 時,把記憶體持久化寫到檔案中,以此逐步寫入,避免oom。這樣就完美解決了大資料下匯出的問題

學習poi移步至

參考位址

POI資料的excel匯出

第一步 引入jar包 版本選擇 org.apache.poi poi3.17 org.apache.poi poi ooxml 3.17 第二步 工具類 第三步 controller層 通過以上的三步走,基本的匯出功能實現。但實際中可能不會這麼簡單,也會有很多負責的業務邏輯。例如 第 步 更改工具類...

java匯出excel檔案 第三種方法

1.第三種方法直接上 這裡還是用的spring mvc進行的請求,主要看 註解,如下 row.createcell 8,hssfcell.cell type string setcellvalue comwithdrawalsvo2.getbankcard 銀行卡號 row.createcell 9...

PHP 匯出Excel三種方式 阿星小棧

public function getvideoexcelexport headtitle titlename id 標題付費模式 內容 filename title.xls this exceldata dataresult,titlename,headtitle,filename public ...