org.apache.poigroupid>
poi-ooxmlartifactid>
3.16-beta2version>
dependency>
效果:我這個表也是十幾個字段,無大字段。實測匯出100w條用時61s,excel檔案大小68m;匯出1000w條534s,excel檔案大小464m。
**不是很規範,各位大佬高抬貴手 ———— o( ̄▽ ̄)d
下面是controller原始碼// 構造乙個空的工作簿並指定行訪問視窗。
sxssfworkbook wb = new sxssfworkbook(1);
sheet sh = null;
row row = null;
cell cell = null;
for (int i = 0; i <= cycle; i++)
sh = wb.createsheet(string.valueof(i+1));
barcodepoiutil.setexcelcontent(list, tableheader, row, sh, cell);
}bufferedoutputstream out = null;
string filename = "barcodedatas.xlsx";
try catch (ioexception e) finally
// 處理在磁碟上備份此工作簿的臨時檔案
wb.dispose();
} catch (ioexception e)
}long endtime = system.currenttimemillis();
log.info("【 " + this.getclass().getname() + " 】【 " + new ******dateformat("yyyy-mm-dd hh:mm:ss").format(new date()) + " 】 匯出:條形碼" + count + "條,用時:" + (endtime - starttime) / 1000 + " s");
}
(在controller中被呼叫)工具方法:將查到的資料,裝入sheetpublic
class barcodepoiutil
// 建立表內容
for (int a = 0; a < list.size(); a++) }}
}}
百(千)萬級excel匯出 流式
背景介紹 我負責的有個條形碼的模組,目前110w資料,未來還會繼續新增,需要做乙個excel匯出的功能。org.apache.poi poi ooxml 3.16 beta2 主要思路 頁面發出匯出請求,在controller裡面做處理。controller裡面主要做 1.拿到請求引數 2.分頁查詢...
千萬級資料匯出excel的一點心得
最近做了個專案,使用mysql資料庫,要求做到千萬級的資料用excel匯出,試了良久,找出了幾個方法.1.分批讀取,用limit,這個資料量小的時候還行,資料量一大當場傻眼 2.使用流式讀取,耗時3分鐘,速度還可以再優化,就是占用記憶體太大,1000w資料佔了3g運存,關鍵字為 resultsett...
用輸出流匯出EXCEL,在2007下開啟亂碼問題
該方法試用與2003與2007,可以匯出多個sheet.不會有亂碼.具體如下 system.io.stringwriter sw new system.io.stringwriter system.web.ui.htmltextwriter hw new system.web.ui.htmltext...