我的应用程序具有导出到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'。此操作失败,因为QueryInterface调用COM组件上的接口与IID' {00020970-0000-0000-C000-000000000046}'由于以下错误而失败:不支持此类接口(HRESULT异常:0x80004002(E_NOINTERFACE))。
有人告诉我编辑注册表,但IID" {00020970-0000-0000-C000-000000000046}"在我的注册表中不存在。
答案 0 :(得分:5)
运行Office的修复安装通常可以解决该问题。
答案 1 :(得分:1)
我遇到了完全相同的问题,重新安装Office 2013解决了我的问题。
答案 2 :(得分:1)
我从使用Word Interop切换为使用后期绑定。快速修复,不影响重构大量代码...
之前:
OfficeWord.Application msword = new OfficeWord.Application();
之后:
Type wordType = Type.GetTypeFromProgID("Word.Application");
dynamic msword = Activator.CreateInstance(wordType);
解决了我的一堆公司计算机上的问题,这些公司计算机在通过客户支持进行Office升级后开始出现此问题。
答案 3 :(得分:-1)
旧的问题,但是在尝试创建新的Word应用程序时遇到了同样的问题,完全相同的错误消息。问题很简单,一旦我无奈关闭VS并去做其他工作。当我打开word时,它会检索Word关闭时尚未保存的文档,并想知道我要如何处理它们。我告诉它删除它们,关闭单词,我的代码工作正常。仍在努力解决此问题,但我想我可以把它放到这里,以免其他人在简单的情况下不必重新安装Office。