【问题标题】:Workbooks.Open method throwing HRESULT: 0x800A03ECWorkbooks.Open 方法抛出 HRESULT: 0x800A03EC
【发布时间】:2015-02-26 15:58:44
【问题描述】:

我正在使用打开一个 excel 文件

 object missing = Type.Missing;

xlWorkBook = xlApp.Workbooks.Open(strFilePath, missing, false, missing, missing, missing,
true, missing, missing, missing, missing, true, missing, missing, missing);

它抛出HRESULT: 0x800A03EC

它在 office 2010 上运行良好,但在将 office 库更新到版本 15 并部署到具有 office 2013 的服务器后。我开始收到此消息。 我也尝试在 DomConfig 中授予 Excel 对象权限,但没有成功,

【问题讨论】:

  • @adil-waqal:您使用的是什么版本的服务器?这个answer 可以帮助你。

标签: excel office-interop excel-interop office-2013


【解决方案1】:

注意Microsoft.Office.Interop.Excel.dll有很多版本
我可以在:

C:\Program Files\Microsoft Visual Studio 10.0\Visual Studio Tools for Office\PIA\Office14


另一个在:

C:\Program Files\Microsoft Visual Studio 10.0\Visual Studio Tools for Office\PIA\Office12


从您的项目中删除引用并添加合适的引用,重新构建您的解决方案。
EDIT #1
Office11 是 Office 2003 的内部名称。
适用于 Office 2007 的 Office12。
Office14 即适用于 Office 2010。
安装 Microsoft Office 时,请确保选择了 .NET Programmability Support 功能。此外,您还可以通过以下形式下载它们:
Office 2010: Primary Interop Assemblies
尝试为 Office 2013 找到它们。

【讨论】:

  • 我找不到任何 office 14 文件夹,但有 Office11 和 Office12.. 这是否意味着我没有 Office 2013 的 PIA...?
  • @AdilWaqar:我修改了答案,请参阅:EDIT #1。
【解决方案2】:

您目前使用的 Office PIA 版本无关紧要,因为即使使用旧的 PIA,您的代码也应该适用于最新的 Office 版本。

相反,请查看Considerations for server-side Automation of Office 文章,其中陈述如下:

Microsoft 目前不推荐也不支持从任何无人值守的非交互式客户端应用程序或组件(包括 ASP、ASP.NET、DCOM 和 NT 服务)自动化 Microsoft Office 应用程序,因为 Office在此环境中运行 Office 时可能会出现不稳定的行为和/或死锁。

【讨论】:

    猜你喜欢
    • 2018-09-22
    • 1970-01-01
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多