如何将 DataTable 保存为 Excel 文件(不是 csv)然后打开它?
How to save DataTable as an Excel file (not csv) and then open it?
我使用此代码在 Excel 中打开 DataTable
。这是一个 wpf 应用程序。
excel = new Microsoft.Office.Interop.Excel.Application();
wb = excel.Workbooks.Add();
ws = (Microsoft.Office.Interop.Excel.Worksheet)wb.Sheets.Add();
for (var i = 0; i < dt.Columns.Count; i++) {
ws.Range["A1"].Offset[0, i].Value = dt.Columns[i].ColumnName;
}
for (var i = 0; i < dt.Rows.Count; i++) {
ws.Range["A2"].Offset[i].Resize[1, dt.Columns.Count].Value = dt.Rows[i].ItemArray;
}
excel.Visible = true;
wb.Activate();
但我想先将文件另存为 xls
文件(不是 csv),然后在 Excel 中打开它。或者至少在 Excel 保存时打开它——也就是说,当我打开它时,它已经写在磁盘上了。现在上面的代码只是打开 Excel,没有文件名——数据没有保存在磁盘上。
要保存 Excel 工作簿,请使用 Workbook.SaveAs method。在 wb.Activate 行之前插入此行。
wb.SaveAs("C:\Example\Example.xls", xlExcel8)
我使用此代码在 Excel 中打开 DataTable
。这是一个 wpf 应用程序。
excel = new Microsoft.Office.Interop.Excel.Application();
wb = excel.Workbooks.Add();
ws = (Microsoft.Office.Interop.Excel.Worksheet)wb.Sheets.Add();
for (var i = 0; i < dt.Columns.Count; i++) {
ws.Range["A1"].Offset[0, i].Value = dt.Columns[i].ColumnName;
}
for (var i = 0; i < dt.Rows.Count; i++) {
ws.Range["A2"].Offset[i].Resize[1, dt.Columns.Count].Value = dt.Rows[i].ItemArray;
}
excel.Visible = true;
wb.Activate();
但我想先将文件另存为 xls
文件(不是 csv),然后在 Excel 中打开它。或者至少在 Excel 保存时打开它——也就是说,当我打开它时,它已经写在磁盘上了。现在上面的代码只是打开 Excel,没有文件名——数据没有保存在磁盘上。
要保存 Excel 工作簿,请使用 Workbook.SaveAs method。在 wb.Activate 行之前插入此行。
wb.SaveAs("C:\Example\Example.xls", xlExcel8)