【发布时间】:2013-02-15 06:55:12
【问题描述】:
我正在尝试以编程方式将工作表添加到新的 Excel 文档中。
我的预期输出是名为“test1-20”的工作表,但我得到的是“Sheet1-19,test20”。
为什么这不起作用?
Workbook workbook;
Application objExcel;
objExcel = new Application();
objExcel.Visible = false;
objExcel.DisplayAlerts = false;
for (var i = 0; i < worksheets.Count; i++)
{
workbook= objExcel.Workbooks.Add(Missing.Value);
var worksheet = (Worksheet)workbook.Worksheets.get_Item(i + 1);
worksheet.Name = string.Format("test{0}", i + 1);
}
【问题讨论】:
-
等一下。您是否尝试添加工作表或工作簿? Workbooks.Add() 在这里看起来很奇怪。
-
@lc。如果您正在创建新的 Excel 应用程序对象,则不会。您可以添加一个新工作簿,向其中添加一些工作表,对工作表执行您需要执行的操作,然后保存它,而不是打开现有工作簿。
-
@JMK 但这是在添加工作表。计数新工作簿(复数形式)......可能不是故意的?或者我只是错过了一些东西
-
@lc。抱歉,您当然是正确的,这不应该在 for 循环中,在这种情况下,您要创建 20 个工作簿并为每个工作簿添加一个工作表。