海量資料匯出excel

2022-09-14 05:03:10 字數 2658 閱讀 4029

**:

對於匯出execl檔案大量時 一般做法時間會很長, 下面個人收藏方法,可導海量資料

protected void createexecl(string swhere,string title) 

microsoft.office.interop.excel.workbook workbook = workbooks.add(microsoft.office.interop.excel.xlwbatemplate.xlwbatworksheet);

microsoft.office.interop.excel.worksheet worksheet = (microsoft.office.interop.excel.worksheet)workbook.worksheets[1];//取得 sheet1

system.data.datatable table = new system.data.datatable();

table.columns.add("tagno", typeof(string));

table.columns.add("adddate", typeof(string));

sqldatareader dr = mydb.executereadersql("select tagno,adddate from tagno where " + swhere + " order by tagnoid asc", null);

while (dr.read())

dr.close();

long rows = table.rows.count;

int32 _pagecount = 60000;

if (rows > 60000)

for (int sc = 1; sc <= scount; sc++)

else

string[,] datas = new string[pagerows + 1, 2];

datas[0, 0] = "吊牌號";

datas[0, 1] = "生成時間";

microsoft.office.interop.excel.range range = worksheet.get_range(worksheet.cells[1, 1], worksheet.cells[1, 2]);

range.interior.colorindex = 15;//15代表灰色

range.font.bold = true;

range.font.size = 9;

int init = int.parse(((sc - 1) * pagerows).tostring());

int r = 0;

int index = 0;

int32 result;

if (pagerows * sc >= table.rows.count)

else

for (r = init; r < result; r++)

}microsoft.office.interop.excel.range fchr = worksheet.get_range(worksheet.cells[1, 1], worksheet.cells[index +1, 2]);

fchr.value2 = datas;

worksheet.columns.entirecolumn.autofit();//列寬自適應。

range = worksheet.get_range(worksheet.cells[1, 1], worksheet.cells[index + 1, 2]);

//15代表灰色

range.font.size = 9;

range.rowheight = 14.25;

range.borders.linestyle = 1;

range.horizontalalignment = 1;}}

else }}

microsoft.office.interop.excel.range fchr = worksheet.get_range(worksheet.cells[1, 1], worksheet.cells[table.rows.count + 2, 2]);

fchr.value2 = datas;

worksheet.columns.entirecolumn.autofit();//列寬自適應。

range = worksheet.get_range(worksheet.cells[1, 1], worksheet.cells[table.rows.count + 1, 2]);

//15代表灰色

range.font.size = 9;

range.rowheight = 14.25;

range.borders.linestyle = 1;

range.horizontalalignment = 1;

}if (s**efilename != "")

//catch (exception ex)//}

else

gc.collect();//強行銷毀

if (files**ed && system.io.file.exists(s**efilename)) system.diagnostics.process.start(s**efilename); //開啟excel

}

編輯器載入中...

海量資料匯出excel處理

在海量資料匯出excel的時候我們經常遇到記憶體溢位的問題,記憶體的溢位很有可能發生在兩個地方,第一種是查詢出海量的資料放入list集合的時候,第二種是根據集合生成excel的時候。我們記憶體的溢位通常是第二種,首先說一下第二種記憶體溢位的處理方法。在處理第二種記憶體溢位之前我們必須先了解excel...

資料匯出excel

一 name get name 當我們接到乙個資料表的名字的時候用下面這個sql語句就能把表字段展示出來 res db select describe name foreach res as v a就是我們所需要的欄位名稱 接下來我們定義excel裡表頭的格式 str for i 0 i array...

資料匯出excel

exportexcel data,title,filename 匯出資料為excel param data 乙個二維陣列,結構如同從資料庫查出來的陣列 param title excel的第一行標題,乙個陣列,如果為空則沒有標題 examlpe exportexcel arr,array id 賬戶...