我在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)
答案 0 :(得分:1)
在服务器中安装MS office以在u r项目中运行office.interop程序集是最佳选择..
如果您不想在服务器计算机上安装MS Office,那么您可以安装PIA(主互操作程序集)
http://msdn.microsoft.com/en-us/library/kh3965hw.aspx
下载PIA办公室链接
答案 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
答案 2 :(得分:1)
此问题不是由您的代码引起的。我的计算机上有Office 2016和2010,在卸载2010并重新启动后,问题得到解决。确保将应用程序参考更改为MS Office 14.0对象库(适用于Office 2010)。
答案 3 :(得分:0)
Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(pathExcel, null,false);
需要打开只读= false