本文目錄一覽:
- 1、java 使用POI3.7 HSSF 報表導出內存溢出問題
- 2、java poi 生成Excel 速度非常慢,求優化方案?數據才到2000左右的時候就開始變慢了。。
- 3、java excel poi 大數據量50W 內存溢出
- 4、Java中的POI他是幹嘛的可以做什麼
- 5、java poi進行百萬級數據導入 導出 時的瓶頸在哪?又該如何優化?
- 6、java 用POI處理比較大的word和excel文檔。
java 使用POI3.7 HSSF 報表導出內存溢出問題
這個主要是excel表格版本的問題2003是有限制的65535,用2007的能導一百萬數據,不過內存需要適當的設置大點
java poi 生成Excel 速度非常慢,求優化方案?數據才到2000左右的時候就開始變慢了。。
發現你問題的所在了,你把過多的可重用的東西卸寫在了循環內
HSSFCellStyle cellStyle = wb.createCellStyle();
HSSFDataFormat format = wb.createDataFormat();
cellStyle.setDataFormat(format.getFormat(“@”));
// HSSFRow row = sheet.createRow(i+2);//這句不可重用
HSSFCell policyNoCell = row.createCell((short) 0);
policyNoCell.setCellStyle(cellStyle);
policyNoCell.setCellValue(new HSSFRichTextString(rs.getString(3)));//這句不可重用
你這個完全可以卸載循環外啊,creat這麼多,肯定占內存
就算你有多個style,你也可以只需要creat一次,然後反覆調用就好了
切記,以後再代碼設計中,一定要考慮最大可能的重用,而不是每次需要去創造(new()、crate什麼的),這是一種思維,祝你好運
java excel poi 大數據量50W 內存溢出
50W數庫EXCEL打開也有難度,建議導入CSV格式文件,或分多個文件。
關於內存溢出,注意以下幾點:
1,分頁分批從數據庫里查詢數據。
2,注意變量的釋放,特別是LIST和MAP之類的引用,如果定義成全局變量或靜態變量就會很難釋放。
3,調大虛擬機內存大小。
Java中的POI他是幹嘛的可以做什麼
這個是一個用於操作EXCEL和WORD的工具包,不過貌似開發團隊解散了,一直沒有更新,對WORD的支持不是很好,建議還是使用ITEXT之類吧
java poi進行百萬級數據導入 導出 時的瓶頸在哪?又該如何優化?
POI使用Workbook在內存中生成整個文檔, 因此到了百萬級數據時瓶頸處於內存.
優化方式通常有以下幾種方法:
買內存條加大電腦內存
限制每個文件大小, 數據量大時根據最大數量進行分割.
java 用POI處理比較大的word和excel文檔。
用它的底層接口,EVentModel來操作會比較省內存,但代碼寫起來比較麻煩。9M左右就內存溢出的話,應該是你設置的Heap size太小了。增大Heap的大小也是必須的。
如果是xls的,用JExcel會比POI省內存。但它不支持2010。
原創文章,作者:ZFTP,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/139336.html