从asp.net创建Excel文件时出错

本文关键字:文件 出错 Excel 创建 asp net | 更新日期: 2023-09-27 18:00:04

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

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

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

从asp.net创建Excel文件时出错

您正试图创建一个Excel文件

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

微软官方不支持这种组合:

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

因此,如果到目前为止它在您的WindowsServer2008上运行,那只是巧合。你很幸运。这不是你应该在生产系统上做的事情。

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

  • 从C创建Excel(.XLS和.XLSX)文件#

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

这可能不是您的代码的问题,因为它在windows服务器2008上运行良好。你可以尝试这个注册表破解,但请记住,错误的注册表修改可能是致命的,所以你可能想创建注册表的还原点或备份:

  1. 运行>regedt32
  2. 修复HKEY_CURRENT_USER的值''Software''Microsoft''Windows''CurrentVersion''Explorer''USER Shell Folders

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

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