.net 无法转换Office Interop Word的COM对象

nbnkbykc  于 2023-05-08  发布在  .NET
关注(0)|答案(5)|浏览(129)

我的应用程序具有导出到Microsoft Word的功能,但自从我从Microsoft Office 2010升级到Microsoft Office 2013以来,该功能一直不起作用。
代码如下:

Microsoft.Office.Interop.Word.Application appVersion = new Microsoft.Office.Interop.Word.Application();
appVersion.Visible = false;

这是错误消息:
无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的COM对象强制转换为接口类型“Microsoft. Office. Interop. Word._Application”。此操作失败,因为对IID为“{00020970-0000-0000-C 000 - 00000000046}”的接口的COM组件的QueryInterface调用失败,原因是以下错误:不支持此类接口(HRESULT:0x80004002(E_NOINTERFACE))。
有人告诉我编辑注册表,但IID“{00020970- 0000-0000-C 000 - 00000000046}”在我的注册表中不存在。

vof42yt1

vof42yt11#

运行Office的修复安装通常可以解决此问题。

ndh0cuux

ndh0cuux2#

我从使用Word Interop切换到使用后期绑定。不影响重构大量代码的快速修复...
之前:

OfficeWord.Application msword = new OfficeWord.Application();

之后:

Type wordType = Type.GetTypeFromProgID("Word.Application");
dynamic msword = Activator.CreateInstance(wordType);

解决了我在一堆公司电脑上的问题,这些电脑在客户端支持的Office升级后开始出现这个问题。

rqcrx0a6

rqcrx0a63#

我遇到了同样的问题,重新安装Office 2013解决了我的问题。

92dk7w1h

92dk7w1h4#

我知道这是晚了,但因为我有同样的问题,我找到了一个解决方案here
将来可能会帮助其他人。

5t7ly7z5

5t7ly7z55#

老问题,但是我遇到了同样的事情,同样的确切错误信息时,试图创建一个新的word应用程序。问题很简单,有一次我沮丧地关闭了VS,去做其他的工作。当我打开word时,它已经检索了Word关闭时没有保存的文档,并想知道我想对它们做什么。我告诉它删除它们,关闭了单词,我的代码工作正常。仍在努力解决这个问题,但我想我会把这个放在这里,以保存其他人从重新安装办公室时,它是一些简单的东西。

相关问题