保存工作簿时出错:System.Runtime.InteropServices.COMException:从HRESULTexception:0x800A03EC

我正在用我的asp.net应用程序创build一个excel文件 。 我在IIS7上托pipe这个网站。

当我从服务器运行它时,保存工作簿时出现错误。

我的代码

Workbook.SaveAs(Server.MapPath("Folder") + "\\" + filename + ".xls" , Excel.XlFileFormat.xlHtml, objOpt, objOpt, false, false ,Excel.XlSaveAsAccessMode.xlShared, false, false, objOpt, objOpt); 

我一直试图解决这个问题一个星期。 希望在这里find一些帮助

这是我的错误

 System.Runtime.InteropServices.COMException: Exception from HRESULT: 0x800A03EC 

我正在使用Office 2000,IIS7 。 我已经设置了所有授权。 任何build议,高度赞赏。

Interop不被MS支持的服务器场景(如IIS) 。

在服务器上没有Interop /安装Excel的情况下,有很多选项可以读取/编辑/创buildExcel文件:

MS提供免费的OpenXML SDK V 2.0 – 请参阅http://msdn.microsoft.com/zh-cn/library/bb448854%28office.14%29.aspx (仅限XLSX)

这可以读取+写入MS Office文件(包括Excel)。

另一个免费的选项见http://www.codeproject.com/KB/office/OpenXML.aspx (仅限XLSX)

如果您需要处理较旧的Excel版本(如XLS,而不仅仅是XLSX),渲染,创buildPDF,公式等,那么您可能需要更多的免费和商业库,如ClosedXML (免费,仅限XLSX), EPPlus (免费,仅限XLSX) , Aspose.Cells , SpreadsheetGear , LibXL和Flexcel等。

打开工作簿时,是否将“只读”属性设置为“true”?

请参阅以下有关如何打开具有写权限的工作簿:

 Microsoft.Office.Interop.Excel.Application xlApp = null; Microsoft.Office.Interop.Excel.Workbook xlWorkBook = null; xlApp = new Excel.ApplicationClass(); xlWorkBook = xlApp.Workbooks.Open(txtFilePath.Text, 0, false, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); 

“xlApp.Workbooks.Open”方法的第三个参数的值为“false”表示该工作簿不会是只读的。

这只是一个疯狂的猜测,因为你没有共享关于如何打开工作簿的任何代码。 希望能帮助到你。