【发布时间】:2013-05-23 05:08:12
【问题描述】:
嘿,我遇到了以下异常: 由于以下错误,检索具有 CLSID {00020819-0000-0000-C000-000000000046} 的组件的 COM 类工厂失败:80040154。 办公室 2010。
我已经阅读了一堆结果,典型的解决方案是将调试从 AnyCPU 更改为 X86。(我不想这样做,因为它是一个大项目,但它无论如何都没有用)。我也想了解异常。
我只是试图添加一个新的工作簿工作表并用一些数据填充它,但由于上述异常,它在创建工作簿时出错。
using excel = Microsoft.Office.Interop.Excel;
public static void ExcelFunction()
{
excel.Workbook wb_XLS = new excel.Workbook();
excel.Worksheet ws_XLS = new excel.Worksheet();
ws_XLS = (excel.Worksheet)wb_XLS.ActiveSheet;
int x, y,count;
count = x = y = 0;
while (x < 100)
{
while (y < 100)
{
ws_XLS.Cells[x, y] = count.ToString();
count++;
y++;
}
x++;
}
}
【问题讨论】:
-
表示“类未注册”。
-
在 HKEY_CLASSES_ROOT\CLSID 下的注册表中查找。您的机器上是否有该指南的条目?
-
更贴近:您是否曾经在您的计算机上安装过 Office 主互操作程序集?默认情况下,它们不附带 Office。
-
您不应该先创建 excel 应用程序,然后通过在工作簿集合上调用 Add 而不是在 excel.workbook 上调用 new 来创建新工作簿吗?
-
尝试使用
Microsoft.Office.Interop.Excel.Application app = new ...等,然后在进入工作簿级别之前说Microsoft.Office.Interop.Excel.Workbooks books = app.Workbooks。这是@WiktorZychla 的建议
标签: c# office-interop