1.C# winform 打开word报错
无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Word._Application”。此操作失败的原因是对 IID 为“{00020970-0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 找不到 。 (异常来自 HRESULT:0x80030002 (STG_E_FILENOTFOUND))。
上次是 HRESULT:0x80004002(E_NOINTERFACE),修复了一下office变成如上所示。
出现原因:可能是安装office时安装过不同版本造成的。
本人安装的是office 2003,并安装过office2007的兼容包,也安装过office visio 2007
解决办法:
在注册表中找到:HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\1.6 删除之就可以了。
因为我用的是office 2003对应的是1.5,所以删除1.6
office 2007对应的是1.6,所以要根据情况判断。(我的是安装了2007之后有安装了2010,10可以,07不可以,我后来卸载掉10,用07版测试发现该注册表项下1.7还在,所以删除掉1.7,07版就正常了)
后记:
一般来说,一个COM对象在提供的时候,通常还会提供一个类型库,在其中定义了COM对象的所有方法名称、参数名称、属性名称等等信息。我们要做的就是从类型库中取出这些信息。当然,某些只供C++程序员使用的COM对象没有类型库,而代之以C++的头文件和/或idl文件,对这种情况,一般没有办法在程序中枚举出对象的方法属性:毕竟去找C++头文件不太现实,何况在非开发环境下,根本就没有头文件的说。
在一般情况下,COM对象的TypeLib信息存储在注册表中:在HK_CLASSROOT\CLSID\{ClassID}\的注册表项下,有一个名为TypeLib的子项,其中定义了这个COM对象类型库的ID;而在HK_CLASSROOT\TypeLib 注册表项下,列举了系统中所有TypeLib。
2.
以下OFFICE可圆满解决问题:请下载收藏,肯定非常有用:Office2013通用版 软件及教程 :/soft/386.htm 功能完全覆盖OFFICE2010Office2003经典版 软件及教程: /soft/401.htmOffice2007完美版 软件及教程: /soft/385.htm包含完整的WORD \EXCEL \POWERPOINT \ACCESS \PDF满足办公和计算机等级考试。
按提示,安装完成即可永久使用。支持任何WIN系统(包括 XP、WIN7、WIN8 32位和64位等)WIN7 / WIN8 用户,选择软件,点鼠标右键,选择以管理员身份运行。
3.你好,导出Excel表格时,异常来自 HRESULT:0x800A03EC,请问你
不好意思 今天才看到导入EXCEL出错有很多方面的原因 我先说几个常见的 最常见的就是DCOM组件里面的配置 这个你应该知道吧 如果不知道再问我 我给你详细说 还有就是C盘的写入删除权限 当然可以不把要导出导入的EXCEL文件放在C盘 其他盘符都可以 还有一点就是C盘里面的(桌面/Desktop)这个文件夹 你查查看有没有 如果没有 请加上 暂时我记得就这么多 最后 64位和32位的系统 DCOM配置也是不一样的 这点希望你注意一下就好 如果还有什么问题 可以直接HI我。
转载请注明出处51数据库 » word异常来自hresult:0x