1. 错误一
1.1 错误信息
Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80080005 服务器运行失败(Exception from HRESULT: 0x80080005(CO_E_SERVER_EXEC_FAILURE))
1.2 原因分析
C#没有通过程序访问Excel的权限。
1.3 解决方案
-
点击键盘上的 WIN+ R 快捷键,在弹出的运行窗口中输入 comexp.msc -32,点击确定按钮,打开组件服务。
运行窗口
-
-
在组件服务 -> 计算机 -> 我的电脑 -> DCOM配置 中找到 Microsoft Excel Application 服务。
服务列表
-
-
在Microsoft Excel Application 上右键,属性。在弹窗的窗口中选择 安全,启动和激活权限,选择自定义,点击编辑
授权
-
-
在弹窗中,点击“添加”,输入 everyone, 点击确认
天基按用户
-
-
选择添加后的用户名,勾选所有的 允许,点击确认保存。
授权
-
- 选择 配置权限,重复 4-5 步骤
-
7 选择 访问权限, 重复4-5 步骤
访问权限
2. 错误二
2.1 错误信息
服务器出现意外情况。(异常来自 HRESULT:0x80010105(RPC_E_SERVERFAULT))
2.2 原因分析
可能是安装的某些阅读器或编辑器,修改的Excel的打开配置导致。
2.3 解决方案
-
打开电脑的Excel程序,点击文件 -> 选项。
Excel文件界面
-
-
点击加载项, 选择 “COM 加载项”,点击“转到”。
加载项
-
- 去掉所有勾中的选项,点击确认。
3. 错误三
3.1 错误信息
消息筛选器显示应用程序正在使用中。(异常来自 HRESULT:0x8001010A(RPC_E_SERVERCALL_RETRYLAYTER))
3.2 原因分析
没有操作权限
3.3 解决方案
以管理员的身份运行软件
4. 错误四
4.1 错误消息
无法将为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型 “Excel._Application”。此操作失败的原因是对 IID 为“{000208D5 -0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败:不支持此接口(异常来自HRESULT:0x80004002(E_NOINTERFACE))。
4.2 原因分析
系统曾经安装过高版本的Office或Wps后卸载,卸载存在残余。例如:卸载了office2013,安装了office2010
4.3 解决方案
4.3.1 解决方案一: 使用office的自动修复功能
-
打开 控制面板 —> 程序 —> 程序和功能
控制面板
-
-
找到安装的Office程序,右键 —> 更改,选择修复即可。
修复Office
-
4.3.2 解决方案二: 删除当前Office版本不符合的注册表
-
点击WIN + R 键,打开运行窗口,输入 regedit 进入注册表
打开注册表
-
- 查看office版本及配置位置
64位Office:
- 查看office版本及配置位置
计算机\HKEY_CLASSES_ROOT\WOW6432Node\Interface\{00020970-0000-0000-C000-000000000046}\TypeLib
32 位Office配置
计算机\HKEY_CLASSES_ROOT \Interface\[00020970-0000-0000-C000-000000000046]\TypeLib
- 根据配置的路径查找,查找到对应的位置,删除掉其他的版本
64位Office配置中的路径是 {00020905-0000-0000-C000-000000000046}, 版本是 8.7,按照路径查找位置
- 根据配置的路径查找,查找到对应的位置,删除掉其他的版本
计算机\HKEY_CLASSES_ROOT\TypeLib\{00020905-0000-0000-C000-000000000046}
该文件夹下的版本号,只保留对应的8.7,删除掉其他的版本即可。
32位与64位操作相同,查找相应的位置,删除对应的版本。