採用.Net Excel組件匯出 EXCEL檔案,
/// <summary>
/// 匯出Excel
/// </summary>
/// <param name="source">需要匯出的資料</param>
/// <param name="exportFullPath">匯出Excel檔案的全路徑</param>
/// <param name="hasHeadline">如果 true則產生表頭 </param>
private void ExportExcel(DataTable source, string exportFullPath, bool hasHeadline)
{
#region 採用.Net Excel組件匯出
Application objExcel = new Application();
if (objExcel == null)
{
throw new Exception("ERROR: You must install Microsoft Excel Application!");
}
//建立一個Excel檔案(未儲存,無檔案名稱)
Workbooks objWorkbooks = objExcel.Workbooks;
_Workbook objWorkbook = objWorkbooks.Add(XlWBATemplate.xlWBATWorksheet); //預設建立sheet1
//取得Sheet1
Sheets objSheets = objWorkbook.Worksheets;
_Worksheet objWorksheet = (_Worksheet)objSheets.get_Item(1);
//寫入標題
int intDataBeginRow = 1;
if (hasHeadline)
{
for (int i = 0; i < source.Columns.Count; i++)
{
objWorksheet.Cells[1, i + 1] = source.Columns[i].ColumnName.Trim();
}
//資料起始行加1
intDataBeginRow++;
}
//寫入資料,Excel的索引是從1開始的
for (int j = 0; j < source.Rows.Count; j++)
{
for (int k = 0; k < source.Columns.Count; k++)
{
objWorksheet.Cells[j + intDataBeginRow, k + 1] = source.Rows[j][k].ToString();
}
}
objWorksheet.Hyperlinks.Delete(); //去掉超鏈
//儲存檔案(如果使用objWorkbook.SaveAs將不相容excel2000,excelxp)
objWorkbook._SaveAs(exportFullPath, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
//關閉檔案,釋放資源
objWorkbook.Close(false, exportFullPath, false);
objExcel = null;
#endregion
}
直接調用ExportExcel 即可