【问题标题】:Exceptions from Excel API after downgrading from 2013 to 2010从 2013 年降级到 2010 年后 Excel API 的异常
【发布时间】:2014-10-08 06:26:15
【问题描述】:

从 Excel 2013 降级到 2010(即删除 2013 并安装 2010)后,当我尝试像这样从我的加载项访问 Excel OM 时:

if (this.Application.ActiveWorkbook == null)
{
    return;
}

我得到以下异常:

无法将“System.__ComObject”类型的 COM 对象转换为接口 键入“Microsoft.Office.Interop.Excel._Application”。这个操作 失败,因为对 COM 组件的 QueryInterface 调用 由于 IID 为“{000208D5-0000-0000-C000-000000000046}”的接口失败 出现以下错误:库未注册。 (例外来自 HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED)。

我已采取以下步骤来解决此问题,但均未奏效:

  • 修复了办公室安装
  • 卸载并重新安装
  • 从注册表中清除了所有 office 15 引用
  • 重新注册 Excel ("C:\Program Files (x86)\Microsoft Office\Office14\excel.exe" /o)

但是,似乎没有任何效果。是我遗漏了什么还是我真的必须擦拭机器?

编辑: 我的猜测是注册表中仍然存在冲突,但我不知道在哪里......

感谢您的建议!

【问题讨论】:

    标签: c# excel visual-studio-2010


    【解决方案1】:

    找到解决方案 - 我忘了删除对 Excel 2013 的一个引用:

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

    删除1.8 后,我更正的注册表如下所示:

    ...

    信用:http://www.c-sharpcorner.com/Forums/Thread/203666/unable-to-cast-com-object-of-type-microsoft-office-inte.aspx

    【讨论】:

    • 太棒了!从 2010 年到 2007 年的降级也能完美配合!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-04
    • 2012-06-25
    • 2014-07-23
    • 2014-02-12
    • 2013-12-27
    • 2012-10-22
    相关资源
    最近更新 更多