C # how to rename an Excel worksheet using Interop

I need to create an Excel spreadsheet, and then I need to rename the sheets. What am I doing wrong?

Here is the code that I still have:

using System; using System.Reflection; using Excel = Microsoft.Office.Interop.Excel; public class CreateExcelWorksheet { static void Main() { Excel.Application oXL; Excel._Workbook oWB; Excel._Worksheet oSheet; oXL = new Excel.Application(); oWB = (Excel._Workbook)(oXL.Workbooks.Add(Missing.Value)); oSheet = (Excel._Worksheet)oWB.ActiveSheet; oSheet.Cells[1, 1] = "First Name"; oSheet.Cells[1, 2] = "Last Name"; oSheet.Cells[1, 3] = "Full Name"; oSheet.Cells[1, 4] = "Salary"; //Format A1:D1 as bold, vertical alignment = center. oSheet.get_Range("A1", "D1").Font.Bold = true; oSheet.get_Range("A1", "D1").VerticalAlignment = Excel.XlVAlign.xlVAlignCenter; oSheet.Name = "NewOne"; string filename = "C:\\" + DateTime.Now.ToString("dd_MM_yy_hhmmss"); oWB.SaveAs(filename + "asdaa" + ".xlsx"); oWB.Close(); } } 
+4
source share
2 answers

oWB.Worksheets is where you find the sheets.

You can take them by index Worksheets[1] (or 2 or 3 ...)

You can take them named Worksheets["SheetName"]

They come as an object, so translate them into (Worksheet) .

 Worksheet oSheet = (Worksheet)oWB.Worksheets["TheSheetYouWant"]; 

To change the name: oSheet.Name = "NewName";

+6
source

Even shorter: workbook.Worksheets[1].Name = "Sheet Name";

+5
source

Source: https://habr.com/ru/post/1483195/


All Articles