C#System.Runtime.InteropServices.COMException(0x800A03EC):从HRESULTexception:0x800A03EC Microsoft.Office.Interop.Excel._Workbook.SaveAs()

我在保存Excel电子表格时遇到了一些问题,当在Windows服务器2008和2012上运行时,这个项目在本地电脑上运行(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(); 

错误信息

从HRESULTexception:0x800A03EC System.Runtime.InteropServices.COMException(0x800A03EC):从HRESULTexception:0x800A03EC在Microsoft.Office.Interop.Excel._Workbook.SaveAs(对象文件名,对象FileFormat,对象密码,对象WriteResPassword,对象ReadOnlyRecommended,对象CreateBackup,XlSaveAsAccessMode AccessMode,Object ConflictResolution,Object AddToMru,Object TextCodepage,Object TextVisualLayout,Object Local)

在服务器上安装MS Office来运行office.interop程序集是最好的select。

再次如果你不想在服务器上安装MS Office,那么你可以安装PIA(主互操作程序集)

http://msdn.microsoft.com/en-us/library/kh3965hw.aspx

下载PIA办公室的链接

http://www.microsoft.com/downloads/details.aspx?FamilyID=59daebaa-bed4-4282-a28c-b864d8bfa513&DisplayLang=en

这个问题不是由你的代码造成的。 我的电脑上安装了Office 2016和2010,卸载2010并重新启动后,问题得到解决。 确保将“应用程序参考”更改为MS Office 14.0对象库(适用于Office 2010)。

这个错误是由于本地电脑和服务器有不同的办公版本。我使用的是office 2012引用(microsoft office interop excel 14),但是服务器有不同的版本(microsoft office interop excel 12)

步骤1)我安装了相同的办公室版本。 (第12节)

步骤2)在“Microsoft Excel应用程序属性”窗口中select“交互式用户”选项。 https://msdn.microsoft.com/en-us/library/windows/desktop/ms686587(v=vs.85).aspx 在这里输入图像说明