我的应用程序刚刚添加了一个新功能,允许导出数据到excel。它在一台设备上工作正常,但是当我们在第二台设备上实现它时,出现以下错误。 我试图解决它2天但仍然无法解决它。 请提供帮助。谢谢!
错误讯息:
System.InvalidCastException:无法将类型为“Microsoft.Office.Interop.Excel.ApplicationClass”的COM对象强制转换为接口类型“Microsoft.Office.Interop.Excel._Application”。此操作失败,因为由于以下错误,对IID为“{000208D5-0000-0000-C000-000000000046}”的接口的COM组件的QueryInterface调用失败:加载类型库/ DLL时出错。 (来自HRESULT的异常:0x80029C4A(TYPE_E_CANTLOADLIBRARY))。
答案 0 :(得分:1)
答案 1 :(得分:-1)
该错误可能表明它无法加载DLL,但是如果您尝试加载Excel,这就是问题所在。使用注册表无法找到“ EXCEL.EXE”。
对于某些人,可以通过“添加\删除程序”进行简单的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”的完整路径。确保路径正确。