【发布时间】:2012-06-28 17:45:13
【问题描述】:
我在 Winform 中使用 Microsoft.Office.Interop.Excel,我正在读取一个 excel 文件、处理数据并输出一个新的 excel 文件。但是,我无法写入单元格——特别是添加列标题。代码如下:
Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
Workbook wb = xlApp.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
Worksheet ws = (Worksheet)wb.Worksheets[1];
for (int i = 0; i < dt.Columns.Count; i++)
{
for (int j = 0; j < dt.Rows.Count; j++)
{
ws.Cells[j + 1, i] = dt.Rows[j][i].ToString();
}
}
ws.Cells[0, 0] = "Ticket Number";
ws.Cells[0, 1] = "Transit";
ws.Cells[0, 2] = "Outage Start Date";
ws.Cells[0, 3] = "Outage End Date";
ws.Cells[0, 4] = "Business Impact";
wb.Worksheets.Add(ws);
其中“dt”是我的数据表。嵌套的 for 循环不会引发运行时错误,但它后面的代码会引发。错误只是说:COM Exception was unhandled, Exception from HRESULT: 0x800A03EC.
感谢任何建议。
问候。
【问题讨论】:
-
我刚刚发现,如果我注释掉有问题的行,程序就会运行并输出一个文件。但是,当我尝试打开它时,它会立即关闭,之后我无法删除它,因为 Windows 声称 Excel 正在使用它,即使我在任务管理器中找不到 Excel 应用程序。
-
当您在任务管理器中说,您已经检查了进程选项卡以及应用程序选项卡?很容易以闲置的备用 excel.exe 进程结束。您正在关闭 Excel 应用程序对象中的工作簿,或者至少也关闭了 Excel 应用程序对象?
-
我只是在“应用”标签中查看。
-
Cells[] 从 1 开始,而不是从 0 开始...
标签: c# winforms excel com-interop winforms-interop