我已经编写了一个控制台C#程序来生成一个电子表格。但是,当我尝试命名第二张表时,该名称会覆盖第一张表。
///// create sheet1
Workbook wb = xlApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
Worksheet WorkSheet = (Worksheet)wb.Worksheets[1];
WorkSheet.Name = "Work Sheet";
///// create sheet2
wb.Sheets.Add();
Microsoft.Office.Interop.Excel.Worksheet staffCosts = (Microsoft.Office.Interop.Excel.Worksheet)wb.Worksheets[2];
staffCosts.Name = "Staff Costs";
我错过了一些东西,毫无疑问它会很简单。
答案 0 :(得分:3)
默认情况下,新工作表成为第一张工作表。所有其他工作表都向右移动,因此Worksheets[2]
指的是以前的Worksheets[1]
。
无论如何,这就是你应该写的:
staffCosts = wb.Sheets.Add();
staffCosts.Name = "Staff Costs";