解決POI讀取Excel記憶體溢位的問題

2021-10-04 12:16:55 字數 947 閱讀 4370

poi讀取excel有兩種模式,一種是使用者模式,一種是sax模式,將xlsx格式的文件轉換成cvs格式後再進行處理使用者模式相信大家都很清楚,也是poi常用的方式,使用者模式api介面豐富,我們可以很容易的使用poi的api讀取excel,但使用者模式消耗的記憶體很大,當遇到很多sheet、大資料網格、假空行、公式等問題時,很容易導致記憶體溢位。poi官方推薦解決記憶體溢位的方式使用cvs格式解析,

org.apache.poi

poi3.15

public listimportxls()

//讀取當前行中單元格資料,索引從0開始

string areanum = row.getcell(0).getstringcellvalue();

string province = row.getcell(1).getstringcellvalue();

string city = row.getcell(2).getstringcellvalue();

string district = row.getcell(3).getstringcellvalue();

string postcode = row.getcell(4).getstringcellvalue();

area area = new area();

area.setcity(city);

area.setdistrict(district);

area.setprovince(province);

area.setpostcode(postcode);

list.add(area);

}//5、關閉流

workbook.close();

} catch (ioexception e)

return list;

}

POI 解決寫入excel記憶體溢位

下面是結構圖 在專案中遇到二十萬行資料要寫入到excel中時會記憶體溢位,一般方法是調大tomcat的記憶體,但是調到2048m還是會記憶體溢位報錯 poi官網給了一種大批量資料寫入的方法 使用sxxfworkbook 類進行大批量寫入操作解決了這個問題 import junit.framework...

poi讀取excel元素

忽略元資料末尾 回到原資料開始處 org.apache.poi poi3.11 beta2 org.apache.poi poi ooxml 3.11 其中poi ooxml是為讀取xlsx特意引入,切要和poi版本一致 inputstream is new fileinputstream e xs...

利用POI讀取Excel檔案

前幾天實現了利用poi建立excel檔案,今天分享一下如何利用poi讀取excel檔案。要讀取的檔案內容,以下截圖已給出 下面講讀取檔案內容的方法。先建立乙個讀取excel的工具類。操作excel 的功能類 public class excelreader catch ioexception e 獲...