System.Runtime.InteropServices.COMException(0x800A03EC)

Sam*_*r S 29 .net com iis excel-interop

Microsoft.Office.Interop.Excel.WorkbookClass.SaveAs() 方法在Windows Server 2003上运行正常,也在XP上运行,但在Windows Server 2008上没有.我复制它,因为它给了所有的Dll和权限

我还尝试了网上提供的所有解决方案,例如文化设置和DCOM权限.

获得以下错误:

System.Runtime.InteropServices.COMException(0x800A03EC):来自HRESULT的异常:0x800A03EC

Microsoft.Office.Interop.Excel.WorkbookClass.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)

请帮忙 ..!

Sam*_*r S 51

找到答案....... !!!!!!!

Microsoft Windows Server 2008不支持官方Microsoft Office 2003 Interop.

但经过大量的代码和搜索的排列和组合之后,我们遇到了一个适用于我们场景的解决方案.

解决方案是插入Windows 2003和2008维护其文件夹结构的方式之间的差异,因为Office Interop依赖于桌面文件夹进行文件打开/保存.2003系统包含systemmprofile下的桌面文件夹,该文件夹于2008年缺席.

因此,当我们在2008年根据相应的层次结构创建此文件夹时,如下所示; 办公室Interop能够根据需要保存文件.此桌面文件夹需要在下创建

C:\ WINDOWS\system32 \设置\ systemprofile

C:\ WINDOWS\Syswow64资料\设置\ systemprofile

这对我有用......

还要检查是否安装了.NET 1.1,因为它是Interop所需要的,并且是由Windows Server 2008预装的

或者您也可以使用SaveCopyas()方法,只需将参数作为文件名字符串)

多谢你们..!


Pra*_*wad 13

尝试这个,因为它对我有用...

  1. 转到"开始" - >"运行"并输入"dcomcnfg"
  2. 这将打开组件服务窗口,展开"Console Root" - >"Computers" - >"DCOM Config"
  3. 在组件列表中找到"Microsoft Excel Application".
  4. 右键单击该条目并选择"属性"
  5. 转到属性对话框中的"标识"选项卡.
  6. 选择"交互式用户".

礼貌的这里提到最后一段


Eam*_*nne 5

一些谷歌搜索显示,你可能有一个损坏的文件:

http://bitterolives.blogspot.com/2009/03/excel-interop-comexception-hresult.html

并且您可以使用CorruptLoad参数告诉excel打开它,例如...

Workbook workbook = excelApplicationObject.Workbooks.Open(path, CorruptLoad: true);
Run Code Online (Sandbox Code Playgroud)

  • 我也有同样的问题。Excel文件中的数据是垃圾数据。在 Excel 中打开手册并删除错误数据,一切正常。我也尝试过 CorruptLoad。这有效 (2认同)