C#如何使用Interop重命名Excel工作表

8
我需要创建一个Excel电子表格,然后我需要重命名工作表。我做错了什么?
以下是目前我所拥有的代码:
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();
    }
}
2个回答

10

oWB.Worksheets 是你找到工作表的地方。

可以通过索引 Worksheets[1](或2、3等)来获取它们。

可以通过名称 Worksheets["SheetName"] 来获取它们。

它们以对象形式呈现,因此需要将它们转换为 (Worksheet)

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

更改名称:oSheet.Name =“ 新名称”;

优雅的回答! - KADEM Mohammed

8

更简单的写法: workbook.Worksheets[1].Name = "工作表名称";


很酷,这可能使用了“动态”变量。在我写答案的时候,我正在使用.NET 3,所以一切都应该是显式类型。 - Daniel Möller

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接