C#System.Runtime.InteropServices.COMException(0x800A03EC):来自HRESULT的异常:0x800A03EC Microsoft.Office.Interop.Excel._工作簿.SaveAs()

C#System.Runtime.InteropServices.COMException(0x800A03EC):来自HRESULT的异常:0x800A03EC Microsoft.Office.Interop.Excel._工作簿.SaveAs(),c#,excel,windows,C#,Excel,Windows,在Windows server 2008和2012上运行时,我在保存excel电子表格时遇到问题,但此项目在本地pc(Windows 7、8或10)上运行 C#源代码 Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application(); Microsoft.Office.Interop.Excel.Workbook excelWorkBook = excelA

在Windows server 2008和2012上运行时,我在保存excel电子表格时遇到问题,但此项目在本地pc(Windows 7、8或10)上运行

C#源代码

Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
Microsoft.Office.Interop.Excel.Workbook excelWorkBook = excelApp.Workbooks.Add();
Microsoft.Office.Interop.Excel.Worksheet excelWorkSheet = excelWorkBook.Worksheets.Add();
excelWorkSheet.Name = "blablabla";
//added cells data
excelWorkBook.SaveAs(excelPath.ToString());
excelWorkBook.Close();
excelApp.Quit();
错误消息

来自HRESULT的异常:0x800A03EC System.Runtime.InteropServices.COMException(0x800A03EC):异常 来自HRESULT:0x800A03EC at Microsoft.Office.Interop.Excel.\u工作簿.SaveAs(对象文件名, 对象文件格式、对象密码、对象写入密码、对象 ReadOnlyRecommended,对象CreateBackup,XLSaveAsAccess模式 AccessMode,对象冲突解决,对象添加,对象 TextCodepage、对象TextVisualLayout、对象本地)


在服务器中安装MS office以在u r项目中运行office.interop程序集是最佳选择

同样,如果您根本不想在服务器计算机上安装MS office,那么您可以安装PIA(主互操作程序集)

office的PIA下载链接


此错误是由于本地pc和服务器具有不同的office版本。我使用了office 2012参考(microsoft office interop excel 14),但服务器具有不同的版本(microsoft office interop excel 12)

步骤1)我安装了相同的office版本。(五.12)

步骤2)在“Microsoft Excel应用程序属性”窗口中选择“交互式用户”选项。

此问题不是由您的代码引起的。我的电脑上有Office 2016和2010,卸载2010并重新启动后,问题得到了解决。确保将应用程序引用更改为MS Office 14.0对象库(适用于Office 2010)

Excel.Workbook xlWorkbook=xlApp.Workbooks.Open(路径Excel,null,false)


需要open readonly=false

什么是应用程序、桌面应用程序、服务、网站?Opps!对不起,这是一个windows服务应用程序。这里5美分。请注意,李女士。迟早你会遇到麻烦,尤其是在处理安全性和交互用户会话的需要时。看起来还很早,你可能还有其他空间考虑其他选项。但是,如果您依赖Excel引擎,例如,如果您需要进行公式计算、图形,这些将不会提供一个好的选项。在这种情况下,您可以考虑控制数据类型的解决方案,并将Excel作为使用<代码> OpenXML生成的输出之一,并在数据流中进行计算。@ JeNS.S.谢谢您的回答。