如何将DataTable保存为Excel文件(而不是csv)然后打开它?

时间:2015-11-24 17:45:07

标签: c# wpf ms-office office-interop xls

我使用此代码在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 - 数据没有保存在磁盘上。

1 个答案:

答案 0 :(得分:1)

要保存Excel工作簿,请使用Workbook.SaveAs method。在wb.Activate行之前插入此行。

wb.SaveAs("C:\Example\Example.xls", xlExcel8)