【问题标题】:0x800a03ec Exception when using Microsoft.Office.Interop.Excel.Workbook.Open()0x800a03ec 使用 Microsoft.Office.Interop.Excel.Workbook.Open() 时出现异常
【发布时间】:2020-02-24 22:00:30
【问题描述】:

我创建了一个 AutoCAD 插件并将其分发给不同的用户组。我面临的问题是它在某些计算机上崩溃时正在为某些用户工作。此问题可能与计算机或代码有关,因此请仔细阅读。

string strFullPath= "D:\Model\Motor-Manifest\Manifest.xlsm";
Excel.Application excelapplication= new Excel.Application();
Excel.Workbook XlWorkBook = excelapplication.Workbooks.Open(strFullPath, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, false);

我得到的错误如下

System.Runtime.InteropServices.COMException (0x800A03EC):来自 HRESULT 的异常:0x800A03EC

在 Microsoft.Office.Interop.Excel.Workbooks.Open(字符串文件名, 对象更新链接、对象只读、对象格式、对象密码、 对象 WriteResPassword,对象 IgnoreReadOnlyRecommended,对象 原点、对象分隔符、对象可编辑、对象通知、对象 转换器、对象 AddToMru、对象本地、对象 CorruptLoad)

我尝试过但没用的方法

  • 尝试在此article 中建议的受影响机器上重新安装相同版本的 Office (Office 365 Proplus V1902)
  • 确保文件有效、未损坏、可写、未受保护
  • 此处建议的所有机器上的区域格式设置都相同here
  • “DCOM 配置”中 Excel 应用程序的更改设置解释 here
  • 尝试使用excelapplication.Workbooks.Open(strFullPath);
  • 尝试使用 Epplus 但导致文件损坏,请注意,无论如何我无法更改此文件,这是我们从其他人那里获得的文件
  • 尝试使用两个不同版本的互操作 dll(14.0 和 15.0)
  • 尝试使用 xlsx 文件
  • 按照建议将本地语言设置为美国英语here

很少观察

  • 此插件之前在所有计算机上都可以运行,因此我们尝试在受影响的计算机上进行系统还原,但没有成功

  • 在“受影响的机器”上手动打开excel文件时,会踢出其中的宏,但没有被杀毒Link踢出

所有计算机都使用 AutoCAD 2018、VS 2017、Office 365 Proplus 和 Windows 10 (X64)。

我应该在这里做什么?任何帮助是极大的赞赏。非常感谢。

【问题讨论】:

    标签: c# excel windows-10 excel-interop autocad-plugin


    【解决方案1】:

    在许多不同的应用程序上尝试安装和重新安装后,发现有一个名为 Access Database Engine 的应用程序,并且受影响的计算机安装了 2010、2016 两个版本。卸载2016版后,一切正常。卸载2010后就不行了

    【讨论】:

      猜你喜欢
      • 2023-04-01
      • 2018-09-22
      • 1970-01-01
      • 1970-01-01
      • 2013-03-13
      • 1970-01-01
      • 2015-07-14
      • 1970-01-01
      • 2011-03-02
      相关资源
      最近更新 更多