【问题标题】:Error when creating Excel file from asp.net从 asp.net 创建 Excel 文件时出错
【发布时间】:2014-04-24 18:11:18
【问题描述】:

我正在尝试使用 c# 创建一个 excel 文件。我的代码在 windows server 2008 上运行良好,但在 windows server 2012 R2、iis server 8.5、ms office 2007 标准中出现错误。 它告诉我在线错误

oWB = (Excel._Workbook)(oXL.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet));

错误:[COMException (0x800a03ec):microsoft office 无法保存或打开更多文档。

【问题讨论】:

  • 这可能是因为您打开了太多文档,可能是文档没有正确关闭/处理
  • 那个盒子是 64 位的吗?
  • 它在 64 位上运行,也没有打开文件。
  • 没有打开文件@dmportella

标签: c# asp.net


【解决方案1】:

您正在尝试创建 Excel 文件

  • 使用 COM 自动化
  • 来自 ASP.NET 应用程序。

这个组合是officially unsupported by Microsoft:

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

因此,如果它目前在您的 Windows Server 2008 上运行,那纯属巧合。你很幸运。这不是你应该在生产系统上做的事情。

要从 ASP.NET 创建 Excel 文件,请使用其他各种可用的解决方案之一:

(就我个人而言,我对SpreadsheetLight 有很好的经验,但其他任何解决方案也都可以。)

【讨论】:

    【解决方案2】:

    这可能不是您的代码的问题,因为它在 Windows Server 2008 上运行良好。您可以尝试此注册表破解,但请记住,错误的注册表修改可能是致命的,因此您可能需要创建还原点或备份您的注册表:

    1. 运行 > regedt32
    2. 修复以下值:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell 文件夹

    3. 在您的用户外壳文件夹中选择缓存键并将其分配给您自己的目录

    我也为您的问题找到了无需修改注册表的解决方案,请访问this链接或this one,它可能会对您有所帮助。如果这些方法都不适合您,请尝试使用谷歌搜索“microsoft office 无法保存或打开更多文档”并检查与 Excel 本身相关的问题。再一次,我假设问题不在您的代码中。

    【讨论】:

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