无法将类型为“Microsoft.Office.Interop.Excel.ApplicationClass”的COM 对象强制转换为接口类型“Microsoft.Office.Interop.Excel._Application”

报错内容如下:

无法将类型为“Microsoft.Office.Interop.Excel.ApplicationClass”的COM对象强制转换为接口类型“Microsoft.Office.Interop.Excel._Application”。此操作失败的原因是对 IID 为“{000208D5-0000-0000-C000-000000000046}”的接口的COM组件调用QueryInterface因以下错误而失败: 库没有注册。(异常来自HRESULT:0x8002801D (TYPE_E_LIBNOTREGISTERED))。

原因分析:

可能是安装Office时安装过不同版本造成的

解决办法:

打开设备本机的注册表项,在注册表中查询,报错信息,比如:上面的红色字体代码

找到该注册表象后查看TypeLib下的值,如下图:

无法将类型为“Microsoft.Office.Interop.Excel.ApplicationClass”的COM 对象强制转换为接口类型“Microsoft.Office.Interop.Excel._Application”

这里使用的是1.7的版本,然后在注册表中查询:{00020813-0000-0000-C000-000000000046}该值,查询结果路径,如下图:

无法将类型为“Microsoft.Office.Interop.Excel.ApplicationClass”的COM 对象强制转换为接口类型“Microsoft.Office.Interop.Excel._Application”

这里应该有两个版本的值,将与上面步骤版本不一致的值删除掉就可以解决该功能问题。下图是修改后的结果:

无法将类型为“Microsoft.Office.Interop.Excel.ApplicationClass”的COM 对象强制转换为接口类型“Microsoft.Office.Interop.Excel._Application”