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办公室的链接
这个问题不是由你的代码造成的。 我的电脑上安装了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