zoukankan      html  css  js  c++  java
  • 无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Word._Application”

    office修复真实案例

    1. 用户无法预览word

    客户电脑上安装的客户端无法正常预览word,并报错;

    电脑参数:

    1. Windows版本:Windows 10 企业版 2015 长期服务方案

    2. 处理器:Intel(R) Core(TM) i5-4590S CPU @ 3.00GHz 3.00GHz

    3. 内存:8.00 GB

    4. 系统类型:64 位操作系统,基于 x64 的处理器

    5. office 版本:2013

    错误详情:

    2020-04-24 11:47:19,425 DEBUG [][0]- 正要使用Word应用打开文件C:UsersAdministratorDocuments移动授课魏林七年级1班语文20200424113510人教部编版七年级上册1 .1《春》 教学案.doc。
    2020-04-24 11:47:24,967 ERROR [][0]- word转换pdf失败,无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Word._Application”。此操作失败的原因是对 IID 为“{00020970-0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 库没有注册。 (异常来自 HRESULT:0x8002801D (TYPE_E_LIBNOTREGISTERED))。System.InvalidCastException: 无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Word._Application”。此操作失败的原因是对 IID 为“{00020970-0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 库没有注册。 (异常来自 HRESULT:0x8002801D (TYPE_E_LIBNOTREGISTERED))。
       在 System.StubHelpers.StubHelpers.GetCOMIPFromRCW(Object objSrc, IntPtr pCPCMD, IntPtr& ppTarget, Boolean& pfNeedsRelease)
       在 Microsoft.Office.Interop.Word.ApplicationClass.get_Documents()
       在 EasyClassServer.Widgets.OfficeFileHandler.WordToPDF(String sourcePath, String targetPath)
    2020-04-24 11:47:24,980 ERROR [][0]- 打开word错误,无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Word._Application”。此操作失败的原因是对 IID 为“{00020970-0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 库没有注册。 (异常来自 HRESULT:0x8002801D (TYPE_E_LIBNOTREGISTERED))。System.InvalidCastException: 无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Word._Application”。此操作失败的原因是对 IID 为“{00020970-0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 库没有注册。 (异常来自 HRESULT:0x8002801D (TYPE_E_LIBNOTREGISTERED))。
       在 System.StubHelpers.StubHelpers.GetCOMIPFromRCW(Object objSrc, IntPtr pCPCMD, IntPtr& ppTarget, Boolean& pfNeedsRelease)
       在 Microsoft.Office.Interop.Word.ApplicationClass.Quit(Object& SaveChanges, Object& OriginalFormat, Object& RouteDocument)
       在 EasyClassServer.Widgets.OfficeFileHandler.WordToPDF(String sourcePath, String targetPath)
       在 EasyClassServer.Widgets.OfficeFileHandler.<>c__DisplayClass41_0.<OpenWordFile>b__0()
    
    

    解决方案

    猜测是由于电脑之前安装过 Office 或者 WPS,卸载不干净导致。

    1. 打开注册表,找到 HKEY_CLASSES_ROOTTypeLib{00020905-0000-0000-C000-000000000046}

    2. office 2007 对应 8.4,office2010对应 8.5,office2013对应 8.6,office2016、2019对应 8.7。当时机器上除了8.6,还有一个空的 8.7,将 8.7 删除后就可以了。

  • 相关阅读:
    BZOJ1954 Pku3764 The xor-longest Path
    BZOJ3697 采药人的路径
    BZOJ1468 Tree
    BZOJ2326 [HNOI2011]数学作业
    BZOJ2809 [Apio2012]dispatching
    BZOJ1334 [Baltic2008]Elect
    BZOJ2882 工艺
    BZOJ3791 作业
    BZOJ1224 [HNOI2002]彩票
    [noip2013]花匠
  • 原文地址:https://www.cnblogs.com/fanful/p/12778602.html
Copyright © 2011-2022 走看看