Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 无法强制转换COM对象(EXCEL)_.net_Excel_Regedit - Fatal编程技术网

.net 无法强制转换COM对象(EXCEL)

.net 无法强制转换COM对象(EXCEL),.net,excel,regedit,.net,Excel,Regedit,我的应用程序刚刚添加了一个新函数,允许将数据导出到Excel中。它在一台设备上运行良好,但当我们在第二台设备上实现它时,出现了以下错误: 错误消息: System.InvalidCastException:无法强制转换类型为的COM对象 将“Microsoft.Office.Interop.Excel.ApplicationClass”更改为接口类型 “Microsoft.Office.Interop.Excel.\u应用程序”。此操作失败 因为接口的COM组件上的QueryInterface调

我的应用程序刚刚添加了一个新函数,允许将数据导出到Excel中。它在一台设备上运行良好,但当我们在第二台设备上实现它时,出现了以下错误:

错误消息:

System.InvalidCastException:无法强制转换类型为的COM对象 将“Microsoft.Office.Interop.Excel.ApplicationClass”更改为接口类型 “Microsoft.Office.Interop.Excel.\u应用程序”。此操作失败 因为接口的COM组件上的QueryInterface调用 由于以下原因,IID“{000208D5-0000-0000-C000-0000000000 46}”失败: 以下错误:加载类型库/DLL时出错。(不适用于 HRESULT:0x80029C4A(类型E\U CANTLOADLIBRARY))


错误可能会说它无法加载DLL,但如果您试图加载Excel,则问题就出在这里。它无法使用注册表找到“EXCEL.EXE”

对于某些人来说,从Add\Remove programs:Modify执行简单的Office修复就足以解决问题

如果您已经尝试了Office修复,则可以通过编辑注册表手动修复

以管理员身份打开Regedit并转到:

Computer\HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\
这是显示Excel安装位置的位置。此时,如果您看到多个版本,“1.9”、“1.8”、“1.7”,则需要删除额外的条目。例如,Excel 2019是“1.9”,因此您可以删除不再安装的其他版本

一旦你只有一个版本,你也需要检查咬。我已经从32位移动到64位,但两个键仍然存在

Computer\HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\1.9\0\Win32
Computer\HKEY_CLASSES_ROOT\TypeLib\{00020813-0000-0000-C000-000000000046}\1.9\0\Win64
我删除了Win32密钥,一切又开始工作了。在这些键中,默认值显示“EXCEL.EXE”的完整路径。确保路径正确。

可能重复的路径