最近寫了很多導出功能 數量有多又少,下面說一說POI 的一些使用 方法:
創建流程:(上級爲 下級的載體)
1:.創建 工作簿
2.創建 sheet(可以創建多個)
3.創建行
4.創建單元格
接下來 分別說下 工作簿的常用三種形式的區別,他們分別是 1.HSSFWorkbook 2.XSSFWorkbook 3.SXSSFWorkbook
第一種:HSSFWorkbook
針對是 EXCEL2003 版本,擴展名爲 .xls;所以 此種的侷限就是 導出的行數 至多爲 65535 行,此種 因爲行數不足七萬行 所以 一般不會發生 內存不足的情況(OOM)
第二種:XSSFWorkbook
這種形式的出現 是由於 第一種HSSFWorkbook 的侷限性而產生的,因爲其所導出的行數比較少,所以 XSSFWookbook應運而生 其 對應的是EXCEL2007+(1048576行,16384列)擴展名 .xlsx,最多可以 導出 104 萬行,不過 這樣 就伴隨着一個問題---OOM 內存溢出,原因是 你所 創建的 book sheet row cell 等 此時是存在 內存的 並沒有 持久化,那麼 隨着 數據量增大 內存的需求量也就增大,那麼很大可能就是要 OOM了,那麼 怎麼解決呢?
第三種:SXSSFWorkbook poi.jar 3.8+
第二種遇到的問題該如何解決呢? 因爲數據量過大 導致內存吃不消 那麼 可以 讓內存 到量持久化 嗎?
答案是 肯定的,
此種的情況 就是 設置 最大 內存條數 比如 設置 最大內存量爲5000 rows --new SXSSFWookbook(5000),此時 當 行數 達到 5000 時,把 內存 持久化 寫到 文件中,以此 逐步 寫入 避免OOM,那麼這樣 就完美解決了 大數據下 導出 的問題;
之前 寫過 一個導出的文章URL:http://blog.csdn.net/qq_29631809/article/details/72301805