C#操作office组件(excel、word、ppt)报错问题!

最近发现了一个奇怪的问题,C#无法调用office的组件,提示报错,相关信息如下:

Unable to cast COM object of type 'Microsoft.Office.Interop.PowerPoint.ApplicationClass' to interface type 'Microsoft.Office.Interop.PowerPoint._Application'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{91493442-5A91-11CF-8700-00AA0060263B}' failed due to the following error: 加载类型库/DLL 时出错。 (Exception from HRESULT: 0x80029C4A (TYPE_E_CANTLOADLIBRARY)).

An exception occurred during the operation, making the result invalid.  Check InnerException for exception details.

很是头疼,明明已经安装了所有office2007的组件了啊!后来通过查找资料终于解决了,以此做个笔记!

原文地址:http://www.cnblogs.com/tianshuilv/p/3529670.html?utm_source=tuicool

其实说到底这个问题就是由于WPS恶意更改了office的Com组件注册权限,使得office的com组件不能注册,所以WPS和office还是不要一起用了,据我个人猜测产生这个问题的原因可能是:客户刚开始安装了WPS早期版本,而我们的售后服务人员给客户安装软件的时候安装了office2010,这个时候是没有问题的,但是长时间后客户进行了WPS的升级升级到了最新版,WPS最新版让office的com组件注册失效,所以出现了无法加载DLL的错误,而这次我重装office并没有使office成功注册,即使卸载了WPS还是没能成功注册COM组件,因为注册表里可能还残留WPS的信息,所以导致注册表中的关于调用Excel的注册信息混乱,

因此当我 重装WPS之后WPS的注册信息又重新写入注册表并且替换了office的映射关系,所以问题才得以解决


其他相关资料:

http://www.tuicool.com/articles/ym2uYz

http://bbs.csdn.net/topics/390622891

http://social.technet.microsoft.com/wiki/contents/articles/18919.c-ppt-to-pdf-unable-to-cast-com-object-of-type-microsoft-office-interop-powerpoint-applicationclass-to-interface-type-microsoft-office-interop-powerpoint-application.aspx

你可能感兴趣的:(C#)