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

时间:2017-09-06 12:30:06

标签: c# excel windows

我在Windows服务器2008和2012上运行时遇到了保存Excel电子表格的问题,但这个项目在本地电脑上工作(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._Workbook.SaveAs(Object Filename,   Object FileFormat,Object Password,Object WriteResPassword,Object   ReadOnlyRecommended,Object CreateBackup,XlSaveAsAccessMode   AccessMode,Object ConflictResolution,Object AddToMru,Object   TextCodepage,Object TextVisualLayout,Object Local)

4 个答案:

答案 0 :(得分:1)

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

如果您不想在服务器计算机上安装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

答案 1 :(得分:1)

此错误是由于本地PC和服务器具有不同的办公室版本。我使用office 2012引用(microsoft office interop excel 14)但服务器有不同的版本(microsoft office interop excel 12)< / p>

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

步骤2)在“Microsoft Excell应用程序属性”窗口中选择“交互式用户”选项。 https://msdn.microsoft.com/en-us/library/windows/desktop/ms686587(v=vs.85).aspx enter image description here

答案 2 :(得分:1)

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

答案 3 :(得分:0)

Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(pathExcel, null,false);

需要打开只读= false