百(千)萬級excel匯出 流式

2021-08-04 06:17:02 字數 1599 閱讀 5894

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中被呼叫)工具方法:將查到的資料,裝入sheet

public

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...