【问题标题】:Unable to cast COM object (EXCEL)无法转换 COM 对象 (EXCEL)
【发布时间】:2018-11-16 09:11:00
【问题描述】:

我的应用程序刚刚添加了一个允许将数据导出到 Excel 的新功能。它在一台设备上运行良好,但是当我们在第二台设备上实现它时出现以下错误:

错误信息:

System.InvalidCastException:无法转换类型的 COM 对象 'Microsoft.Office.Interop.Excel.ApplicationClass' 到接口类型 'Microsoft.Office.Interop.Excel._Application'。此操作失败 因为接口的 COM 组件上的 QueryInterface 调用 使用 IID '{000208D5-0000-0000-C000-000000000046}' 失败,因为 以下错误:加载类型库/DLL 时出错。 (例外来自 HRESULT: 0x80029C4A (TYPE_E_CANTLOADLIBRARY))。

【问题讨论】:

标签: .net excel regedit


【解决方案1】:

该错误可能表明它无法加载 DLL,但如果您尝试加载 Excel,那就是问题所在。使用注册表找不到“EXCEL.EXE”。

对于某些人来说,通过添加\删除程序进行简单的 Office 修复:修改就足以解决问题。

如果您已经尝试过 Office 修复,则可以通过编辑注册表手动修复它。

以管理员身份打开 Regedit 并转到:

Computer\HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\

这是显示 Excel 安装位置的位置。此时,如果您看到多个版本,“1.9”、“1.8”、“1.7”,那么您需要删除额外的条目。例如 Excel 2019 为“1.9”,因此您将删除不再安装的其他版本。

一旦您只有一个版本,您还需要检查位数。我已经从 32 位转移到 64 位,但两个键仍然存在

Computer\HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\1.9\0\Win32
Computer\HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\1.9\0\Win64

我删除了 Win32 密钥,一切又开始工作了。在这些键中,默认值显示“EXCEL.EXE”的完整路径。确保路径正确。

【讨论】:

    猜你喜欢
    • 2011-08-17
    • 2011-10-29
    • 2017-11-10
    • 1970-01-01
    • 1970-01-01
    • 2011-06-07
    • 2014-04-15
    • 1970-01-01
    • 2019-03-02
    相关资源
    最近更新 更多