【问题标题】:How to rename excel sheet name dynamically in C#如何在 C# 中动态重命名 Excel 工作表名称
【发布时间】:2010-12-30 08:08:25
【问题描述】:

我创建了一个 Excel 工作簿,其中包含许多工作表,如 sheet1、sheet2 等。如何在 C# 中动态重命名这些选项卡名称?

【问题讨论】:

    标签: c# .net excel excel-interop


    【解决方案1】:

    您没有说明如何访问 Excel 文件。但是,如果您使用的是Microsoft.Office.Interop.Excel,来自here 的示例可能对您有用。请注意,它会打开文件中的第一张工作表,行:(Worksheet)xlBook.Worksheets.get_Item(1)

    using Excel = Microsoft.Office.Interop.Excel; 
    
        object oMissing = System.Reflection.Missing.Value;
        Excel.ApplicationClass xl=new Excel.ApplicationClass();
            Excel.Workbook xlBook;
            Excel.Worksheet xlSheet;
            string laPath = Server.MapPath(@"\excel\xl_table.xls");
            xlBook = (Workbook)xl.Workbooks.Open(laPath,oMissing,
              oMissing,oMissing,oMissing ,oMissing,oMissing,oMissing
             ,oMissing,oMissing,oMissing,oMissing,oMissi ng,oMissing,oMissing);
            xlSheet = (Worksheet)xlBook.Worksheets.get_Item(1);
            xlSheet.Name = "CIAO";
            xlBook.Save();
            xl.Application.Workbooks.Close();
    

    【讨论】:

    • 是的...超级酷...其他床单呢?第二张和第三张等等?
    • @Sisya,要重命名所有工作表,请将这两行包裹在一个循环中:for (int i = 1; i < xlBook.Worksheets.Count; i++) { xlSheet = (Worksheet)xlBook.Worksheets.get_Item(i); xlSheet.Name = "CIAO"+i; }
    • 您应该使用Excel.Application xl = new Excel.Application(); 而不是Excel.ApplicationClass xl = new Excel.ApplicationClass(); 以避免编译错误“无法嵌入互操作类型'Microsoft.Office.Interop.Excel.ApplicationClass'。请改用适用的接口。”除此之外按预期工作。
    【解决方案2】:

    一个简短的说明: 如果你不需要指定它们,你可以去掉所有这些可选参数并使用简写形式:

    xlBook = (Workbook)xl.Workbooks.Open(laPath);
    

    问候, 约尔格

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-08
      • 1970-01-01
      • 2015-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多