POI匯出資料記憶體溢位問題《轉》

2022-08-03 18:27:16 字數 1321 閱讀 6864

poi之前的版本不支援大資料量處理,如果資料過多則經常報oom錯誤,有時候調整jvm大小效果也不是太好。3.8版本的poi新出來了sxssfworkbook,可以支援大資料量的操作,只是sxssfworkbook只支援.xlsx格式,不支援.xls格式。

3.8版本的poi對excel的匯出操作,一般只使用hssfworkbook以及

sxssfworkbook,

hssfworkbook用來處理較少的資料量,

sxssfworkbook用來處理大資料量以及超大資料量的匯出。

hssfworkbook的使用方法和之前的版本的使用方法一致,這裡就不在陳述使用方法了

sxssfworkbook的使用例子如下:

import junit.framework.assert;
import org.apache.poi.ss.usermodel.cell;
import org.apache.poi.ss.usermodel.row;
import org.apache.poi.ss.usermodel.sheet;
import org.apache.poi.ss.usermodel.workbook;
import org.apache.poi.ss.util.cellreference;
import org.apache.poi.xssf.streaming.sxssfworkbook;
public static void main(string args) throws throwable
}
fileoutputstream out = new fileoutputstream("/temp/sxssf.xlsx");
wb.write(out);
out.close();
}
以上是**的
值得注意的是sxssfworkbook只能寫不能讀。但是往往我們需要向乙個excel模版裡匯出資料,這樣才更好提前定義裡面的格式和vba**。
這裡就需要使用sxssfworkbook的另外乙個建構函式:
sxssfworkbook(xssfworkbook workbook)

construct a workbook from a template.

通過xssfworkbook來讀取模版,然後用sxssfworkbook來設定樣式和寫資料,詳細使用就參考api吧。

tensorflow記憶體溢位問題

tensorflow的靜態圖結構簡潔清晰,符合人的思維。雖然程式設計上略微有些複雜,但是原理很容易看懂。tensorflow分建圖過程和執行圖 張量求值 兩個階段,在這兩個階段中都可以定義操作和張量。但是有乙個非常容易犯的錯誤 把操作定義在迴圈裡面。例如下面這個例子,tf.assign操作放在了迴圈...

opencv 記憶體溢位問題

問題 1 iplimage imglp cvcreateimage cvgetsize ilipsrc ilipsrc depth,ilipsrc nchannels imglp ct.rgb2cnorm ilipsrc 這時,在rgb2cnorm函式中的返回值如果還cvcreateimage的話,...

web 應用記憶體溢位問題

現象是 web應用不能訪問,檢視tomcat日誌 permgen space的全稱是permanent generation space,是指記憶體的永久儲存區域,這塊記憶體主要是被jvm存放class和meta資訊的,class在被loader時就會被放到permgenspace中,它和存放類例項...