① 關於Poi 大數據量Excel 導出時 文件過大的問題 怎麼解決
建議不要導出excel,當前excel中已經有支持cvs文件。
解釋:cvs文件的顯示方式和版xls的顯示方式一樣,並權且此顯示方式的執行效率要高於xls文件的額,因為cvs文件存儲的是數據直接直接用英文逗號分隔,xls是存儲的cell。所以在大量數據的情況下,都是導出為cvs文件。
備註:如果數據過多的話,建議可以分多次查詢導出,不要一次性導出,否則效率會很低。
-
② java excel poi 大數據量50W 內存溢出
Workbook workbook = new SXSSFWorkbook(1000);
poi有個機制 每次往內存中寫1000條數據,這個1000你可以改的 盡量別大於10000條數據,寫完1000條數據後再內重新寫,這樣就不會內存溢容出了。
③ java 用POI處理比較大的word和excel文檔。
java的主要有兩種方法
1、使用POI,這樣的包,直接的是根據office文件的相應規則,進行解析封裝
2、使用jcob這樣的,通過調用office的dll文件,操作
第一種優點:
不需要在環境上安裝office,純java環境,開發文檔較全,使用方便
缺點:
對於office的某些功能,特性兼容不是很全面,但一般的內容也可以滿足
第二種優點:
對於office文件的兼容性良好,和使用word,excel的操作基本上是一樣的
缺點:
由於是通過java調用office來完成,所以需要在環境上安裝office,文檔較少
④ poi讀取excel2007(大數據),然後保存到資料庫中
導致內存溢出是因為太多了內存不夠用,你可以先讀一部分然後做個標記,先把讀到的這部分數據寫入到資料庫里。然後再從標記處開始讀一部分再寫入,再讀再寫直到完。不要一次性全部讀完。
⑤ java 用POI處理比較大的word和excel文檔。
用它抄的底層介面,EVentModel來操作會襲比較省內存,但代碼寫起來比較麻煩。9M左右就內存溢出的話,應該是你設置的Heap size太小了。增大Heap的大小也是必須的。
如果是xls的,用JExcel會比POI省內存。但它不支持2010。