简体   繁体   中英

C# how to rename Excel Sheet 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 I have so far:

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();
    }
}

oWB.Worksheets is where you find the sheets.

Can take them by index Worksheets[1] (or 2, or 3...)

Can take them by name Worksheets["SheetName"]

They come as object, so cast them to (Worksheet) .

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

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

更短: workbook.Worksheets[1].Name = "Sheet Name";

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM