**:
對於匯出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 賬戶...