使用interop将新工作表添加到Excel

我可以使用2个工作表正确创build一个Excel,并且可以将一个DataTable的数据写入Sheet 1,并且我想将相同的数据写入Sheet 2,但是Sheet 2看起来是空白的。 为什么“表2”是空白的?

这是我的代码:

Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); if (xlApp == null) { Console.WriteLine("EXCEL could not be started. Check that your office installation and project references are correct."); return; } xlApp.Visible = true; Microsoft.Office.Interop.Excel.Workbook wb = xlApp.Workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet); Microsoft.Office.Interop.Excel.Worksheet ws = (Microsoft.Office.Interop.Excel.Worksheet)wb.Worksheets[1]; { if (ws == null) { Console.WriteLine("Worksheet could not be created. Check that your office installation and project references are correct."); } Microsoft.Office.Interop.Excel.Range aRange = ws2.get_Range("C1", "C7"); for (int i = 0; i < main_dt.Columns.Count; i++) { ws.Cells[1, i + 1] = main_dt.Columns[i].ColumnName; aRange = (Microsoft.Office.Interop.Excel.Range)ws.Cells[1, i + 1]; aRange.Interior.ColorIndex = 15; aRange.Font.Bold = true; } for (int r = 0; r < main_dt.Rows.Count; r++) { for (int i = 0; i < main_dt.Columns.Count; i++) { ws.Cells[r + 2, i + 1] = main_dt.Rows[r][i].ToString(); } } } // WORKSHEET 2 ****************** wb.Sheets.Add(); Microsoft.Office.Interop.Excel.Worksheet ws2 = (Microsoft.Office.Interop.Excel.Worksheet)wb.Worksheets[2]; { if (ws2 == null) { Console.WriteLine("Worksheet could not be created. Check that your office installation and project references are correct."); } Microsoft.Office.Interop.Excel.Range aRange = ws2.get_Range("C1", "C7"); for (int i = 0; i < main_dt.Columns.Count; i++) { ws2.Cells[1, i + 1] = main_dt.Columns[i].ColumnName; aRange = (Microsoft.Office.Interop.Excel.Range)ws2.Cells[1, i + 1]; aRange.Interior.ColorIndex = 15; aRange.Font.Bold = true; } for (int r = 0; r < main_dt.Rows.Count; r++) { for (int i = 0; i < main_dt.Columns.Count; i++) { ws2.Cells[r + 2, i + 1] = main_dt.Rows[r][i].ToString(); } } } 

代替:

 wb.Sheets.Add(); Microsoft.Office.Interop.Excel.Worksheet ws2 = (Microsoft.Office.Interop.Excel.Worksheet)wb.Worksheets[2]; 

尝试:

 Microsoft.Office.Interop.Excel.Worksheet ws2 = (Microsoft.Office.Interop.Excel.Worksheet)wb.Sheets.Add();