Возникли проблемы с переименованием листа Excel


Я написал консольную программу 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";
Что-то я упустил, и, без сомнения, это будет просто.
1 2

1 ответ:

По умолчанию новый лист становится первым листом. Все остальные листы сдвинуты вправо, поэтому Worksheets[2] относится к тому, что раньше было Worksheets[1].

Во всяком случае, так вы должны были написать:

staffCosts = wb.Sheets.Add();
staffCosts.Name = "Staff Costs";