用C#命名Excel表格

我正在尝试在Excel工作簿中创build12个新的工作表。 然后我想把每个表格的名字改成一个月的名字(1月 – 12月)。

码:

List<string> Months = new List<string> { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; for (int i = 0; i < Months.Count; i++) { Microsoft.Office.Interop.Excel.Worksheet "sheet" + i = (Worksheet)xlApp.Worksheets["Sheet" + (i+1)]; "sheet" + i.Name = Months[i]; } 

至于工作表的variables名,我想给每个工作表命名"sheet" + i (a number 0-11)工作"sheet" + i (a number 0-11)

一个完整的例子看起来像这样…

 Microsoft.Office.Interop.Excel.Worksheet sheet0 = (Worksheet)xlApp.Worksheets["Sheet1"]; sheet0.Name = "Jan"; 

一切工作正常,除了variables命名("sheet" + i) 。 有什么build议么?

在你的代码中,你有:

 Microsoft.Office.Interop.Excel.Worksheet "sheet" + i = (.....) "sheet" + i.Name = Months[i]; 

在这个例子中,他们确实使用了一个名为sheet0的variables,但是您不需要严格遵守它。 variables可以有任何名称,如mySheetnextSheet

您不需要尝试“build立”一个像"sheet"+i这样的编号variables名称。 更重要的是,这根本行不通 。 请注意sheet0是一个完整的variables名称。 0是名称的一部分,没有" (引号)”,也没有“添加”一个数字到variables名称,不能以这种方式“创build”新的variables。

相反,只要select任何正常的名称:

 for(....) { Microsoft.Office.Interop.Excel.Worksheet justOneOfTheSheetsAtTime = (.....) justOneOfTheSheetsAtTime.Name = Months[i]; } 

它并不重要,它是在一个循环内。 每次循环迭代时,将使用相同的variables名称,并将放入不同的表格。 使用单个variables检查​​并通过循环更改一百张纸是没有问题的。

我可以证实,这对我成功地工作,经过快速validation你想从评论中得到什么:

 List<string> Months = new List<string> { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; Application xlApp = new Application(); Workbook bkMonths = xlApp.Workbooks.Add(); xlApp.Visible = true; for (int i = 0; i < Months.Count; i++) { Worksheet sheetCurrent = xlApp.Worksheets.Add(); sheetCurrent.Name = Months[i]; }