System.Runtime.InteropServices.COMException(0x800A03EC)错误
我得到错误
System.Runtime.InteropServices.COMException(0x800A03EC)
对于我下面的C#代码,我试图在这里保存一个工作表,
但在本地环境中也是如此:Office 2010,Windows 2003
不在服务器上工作:Office 2003,Windows 2003
码:
wBook = xCel.Workbooks.Open(ExcelPath); wSheet = (Excel.Worksheet)wBook.Worksheets.get_Item(1); wSheet.Copy(Type.Missing, Type.Missing); wSheet = (Excel.Worksheet)wBook.Sheets[1]; wSheet.SaveAs(ExcelCopyPath);
这里有什么问题? 保存时失败 在其他一些服务器,它将保存,但在macros中,我不想要的。
要跟踪错误图片
在服务器上使用办公自动化不太好,你可以考虑像epplus一样的select。
对于您的问题office 2003需要Microsoft.Office.Excel版本11和Office 2010将需要版本14。 我想在你的项目中,你会添加14版本,因此它使用word 2010,但没有与office 2003的服务器上工作
尝试后期绑定http://support.microsoft.com/kb/302902 ,如果这解决了你的问题,算作iterop问题
这是IIS运行时的权限问题我有这个问题,我用这种方法解决了这个问题
我继续文件夹
C:\ Windows \ System32 \ config \ SystemProfile
和
C:\ WINDOWS \ Syswow64资料\设置\ SystemProfile
是受保护的系统文件夹,他们通常有锁。
右键单击 – >卡安全性 – >点击编辑 – >添加caching“Autenticadet用户”并分配权限。
在这一点上一切都解决了,如果你仍然有问题尝试给所有的权限,“大家”
你可以使用我写的代码。 我尝试了另一个项目。 它正在工作
编辑:
可能是你的错误的原因是你的Excel版本是不同于你在代码中使用的。
Microsoft.Office.Interop.Excel.Application xlApp; Microsoft.Office.Interop.Excel.Workbook xlWorkBook; Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet; object misValue = System.Reflection.Missing.Value; xlApp = new Microsoft.Office.Interop.Excel.Application(); xlWorkBook = xlApp.Workbooks.Add(misValue); xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); xlWorkSheet.Cells[1, 1] = "xxx"; xlWorkSheet.Cells[2, 1] = "yyy"; xlWorkSheet.get_Range("A1", "A7").Borders.Weight = 2; xlWorkSheet.get_Range("A1", "A7").Font.Bold = true; xlWorkSheet.get_Range("A1", "A7").Font.Size = 13; xlWorkSheet.get_Range("A2", "A7").Borders.Weight = 2; xlWorkSheet.get_Range("A2", "A7").Font.Bold = true; xlWorkSheet.get_Range("A2", "A7").Font.Size = 13; xlWorkSheet.get_Range("A1", "B9").ColumnWidth = 25; xlWorkBook.SaveAs(System.Windows.Forms.Application.StartupPath + "\\exceller\\6 Nolu sosyal ve kültürel faaliyetler\\" + txtFaaliyetAdi.Text + ".xls", Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue , misValue, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue); xlWorkBook.Close(true, misValue, misValue); xlApp.Quit();