【发布时间】:2010-12-30 08:08:25
【问题描述】:
我创建了一个 Excel 工作簿,其中包含许多工作表,如 sheet1、sheet2 等。如何在 C# 中动态重命名这些选项卡名称?
【问题讨论】:
标签: c# .net excel excel-interop
我创建了一个 Excel 工作簿,其中包含许多工作表,如 sheet1、sheet2 等。如何在 C# 中动态重命名这些选项卡名称?
【问题讨论】:
标签: c# .net excel excel-interop
您没有说明如何访问 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();
【讨论】:
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'。请改用适用的接口。”除此之外按预期工作。
一个简短的说明: 如果你不需要指定它们,你可以去掉所有这些可选参数并使用简写形式:
xlBook = (Workbook)xl.Workbooks.Open(laPath);
问候, 约尔格
【讨论】: