C 快速匯出DataTable到Excel檔案

2021-06-20 19:20:16 字數 2263 閱讀 3279

專案中需要將datatable中的內容匯出到excel檔案中,採用迴圈的方式逐個cell寫資料到excel檔案中,**如下:

//把資料表的內容匯出到excel檔案中

public static void outdatatoexcel2(system.data.datatable srcdatatable, string excelfilepath)

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

microsoft.office.interop.excel.worksheet xlsheet = (microsoft.office.interop.excel.worksheet)xlbook.worksheets[1];

//讓後台執行設定為不可見,為true的話會看到開啟乙個excel,然後資料在往裡寫

//生成excel中列頭名稱

for (int i = 0; i < srcdatatable.columns.count; i++)

//把datagridview當前頁的資料儲存在excel中

if (srcdatatable.rows.count > 0)}}

//設定禁止彈出儲存和覆蓋的詢問提示框

if (xlsheet != null)

}catch (exception ex)

}

測試時發現很不好,匯出乙個19列203行的table時,用時竟然高達24秒多。

後來採用整體賦值的方法修改,**如下:

//把資料表的內容匯出到excel檔案中

public static void outdatatoexcel(system.data.datatable srcdatatable, string excelfilepath)

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

microsoft.office.interop.excel.worksheet xlsheet = (microsoft.office.interop.excel.worksheet)xlbook.worksheets[1];

//讓後台執行設定為不可見,為true的話會看到開啟乙個excel,然後資料在往裡寫

object[,] objdata = new object[srcdatatable.rows.count + 1, srcdatatable.columns.count];

//首先將資料寫入到乙個二維陣列中

for (int i = 0; i < srcdatatable.columns.count; i++)

if (srcdatatable.rows.count > 0)}}

string startcol = "a";

int icnt = (srcdatatable.columns.count / 26);

string endcolsignal = (icnt == 0 ? "" : ((char)('a' + (icnt - 1))).tostring());

string endcol = endcolsignal + ((char)('a' + srcdatatable.columns.count - icnt * 26 - 1)).tostring();

excel.range range = xlsheet.get_range(startcol + "1", endcol + (srcdatatable.rows.count - icnt * 26 + 1).tostring());

range.value = objdata; //給exccel中的range整體賦值

range.entirecolumn.autofit(); //設定excel列寬度自適應

xlsheet.get_range(startcol + "1", endcol + "1").font.bold = 1;//excel檔案列名 字型設定為bold

//設定禁止彈出儲存和覆蓋的詢問提示框

if (xlsheet != null)

}catch (exception ex)

}

測試之前的19列203行的datatable,用時為4秒多一些。

C 匯出DataTable到Excel兩種方案

方案一 因為office2007以下版本,只支援65535行,超過後excel就無法建立或開啟。所以需要進行分sheet進行 private static string buildexporthtml system.data.datatable dt strtitlerow stringbuilde...

DataTable快速導到Excel方法

2017年10月12日 12 19 51 濤神 dev 閱讀數 1309 沒有格式要求,想快速匯出datatable資料到excel可以採用以下方式實現,開發人員在除錯過程中有時候也可以用來記錄比較。100w的資料匯出也就1 2秒的時間。void main for int i 0 i 1000000...

C 將DataTable的資料匯出

匯出datatable 待匯出的資料 匯出的完整路徑 public static void datatableexport datatable datatable,string filepath title title.substring 0,title.length 1 n 取完表頭,換行 str...