海量資料匯出excel處理

2021-08-21 23:33:50 字數 810 閱讀 5266

在海量資料匯出excel的時候我們經常遇到記憶體溢位的問題,記憶體的溢位很有可能發生在兩個地方,第一種是查詢出海量的資料放入list集合的時候,第二種是根據集合生成excel的時候。

我們記憶體的溢位通常是第二種,首先說一下第二種記憶體溢位的處理方法。

在處理第二種記憶體溢位之前我們必須先了解excel 2003及以下的版本和excel 2007-2010版本的區別

excel 2003及以下的版本。一張表最大支援65536行資料,256列。也就是說excel2003完全不可能滿足百萬資料匯出的需求。

excel 2007-2010版本。一張表最大支援1048576行,16384列;

匯出excel的最關鍵的方法是以下兩個:

1.hssfworkbook:是操作excel2003以前(包括2003)的版本,副檔名是.xls;

2.sxssfworkbook:是操作excel2007的版本,副檔名是.xlsx;

關鍵**:

workbook workbook;

if(datalist.size()<1000) catch (unsupportedencodingexception e)

workbook = new hssfworkbook();

}else catch (unsupportedencodingexception e)

workbook = new sxssfworkbook();

} sheet sheet = workbook.createsheet();

海量資料匯出excel

對於匯出execl檔案大量時 一般做法時間會很長,下面個人收藏方法,可導海量資料 protected void createexecl string swhere,string title microsoft.office.interop.excel.workbook workbook workbo...

資料匯出excel

一 name get name 當我們接到乙個資料表的名字的時候用下面這個sql語句就能把表字段展示出來 res db select describe name foreach res as v a就是我們所需要的欄位名稱 接下來我們定義excel裡表頭的格式 str for i 0 i array...

資料匯出excel

exportexcel data,title,filename 匯出資料為excel param data 乙個二維陣列,結構如同從資料庫查出來的陣列 param title excel的第一行標題,乙個陣列,如果為空則沒有標題 examlpe exportexcel arr,array id 賬戶...