保存工作簿时出错:System.Runtime.InteropServices.COMException:HRESULT异常:0x800A03EC

时间:2011-05-11 02:27:37

标签: c# asp.net excel iis-7 ms-office

我正在使用 asp.net 应用程序创建 excel文件。我在 IIS7 上托管这个网站。

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

我的代码

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

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

这是我的错误

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

我正在使用 Office 2000,IIS7 。我已经设置了所有授权。 任何建议都非常感谢。

2 个答案:

答案 0 :(得分:2)

Interop is not supported in sever-scenarios (like IIS) by MS

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

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

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

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

如果你需要更多像处理旧的Excel版本(如XLS,不仅仅是XLSX),渲染,创建PDF,公式等,那么有不同的免费和商业库,如ClosedXML(免费,仅限XLSX), EPPlus(免费,仅限XLSX),Aspose.CellsSpreadsheetGearLibXLFlexcel等。

答案 1 :(得分:0)

打开工作簿时,您是否将“只读”属性设置为“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'方法的第3个参数的值'false'表示工作簿不是只读的。

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