用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可以有任何名称,如mySheet
或nextSheet
。
您不需要尝试“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]; }