Microsoft.Office.Interop.Excel.WorkbookClass.SaveAs()
方法在Windows Server 2003以及XP上运行正常,但在Windows Server 2008上没有。我复制它,因为它提供了所有Dll和权限
我还尝试了网上提供的所有解决方案,例如文化设置和DCOM权限。
获取以下错误:
System.Runtime.InteropServices.COMException(0x800A03EC):异常 来自HRESULT:0x800A03EC
at
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)
请帮忙..!
答案 0 :(得分:49)
找到答案....... !!!!!!!
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()方法,只需将参数作为文件名字符串)
谢谢大家......!
答案 1 :(得分:11)
试试这个,因为它对我有用......
答案 2 :(得分:5)
一些谷歌搜索显示你可能有一个损坏的文件:
http://bitterolives.blogspot.com/2009/03/excel-interop-comexception-hresult.html
并且您可以告诉excel使用CorruptLoad参数打开它,类似于......
Workbook workbook = excelApplicationObject.Workbooks.Open(path, CorruptLoad: true);
答案 3 :(得分:2)
我在尝试保存excel文件时看到同样的错误。当我使用MS Office 2003时,代码工作正常,但升级到MS Office 2007后,我开始看到这一点。每当我尝试将Excel文件保存到服务器或远程fie共享时,都会发生这种情况。
我的解决方案尽管很简陋但运作良好。我只是让程序在本地保存文件,比如用户的C:\驱动器。然后使用“System.IO.File.Copy(File,Destination,Overwrite)”方法将文件移动到服务器。然后,您可以删除C:\驱动器上的文件。
效果很好,很简单。但诚然,这不是最优雅的方法。
希望这有帮助!我在网上找到任何解决方案都遇到了很多麻烦,直到这个想法突然出现在我的脑海中。
答案 4 :(得分:1)
IIS正在运行时是权限问题 我有这个问题,我以这种方式解决了它
我去了文件夹
C:\ Windows \ System32 \ config \ SystemProfile
和
C:\ Windows \ SysWOW64 \ config \ SystemProfile
是受保护的系统文件夹,它们通常具有锁定功能。
右键单击 - >卡安全 - >点击编辑 - >添加未加载的“Autenticadet用户”并分配权限。
此时一切都已解决,如果仍有问题,请尝试将所有权限授予“Everyone”
答案 5 :(得分:0)
对于所有那些仍然遇到这个问题的人,我只花了2天时间追踪这个血腥的东西。 当数据集中没有行时,我得到了同样的错误。 看似很明显,但错误信息非常模糊,因此2天。
答案 6 :(得分:0)
在我的情况下,问题是将标头样式设置为“标头1”,但由于不是英语办公室,因此出现错误的Word中不存在该样式。
答案 7 :(得分:0)
由于 excel 文件的路径,我遇到了这个问题,每当我尝试打开 excel 文件时,我都会收到错误消息(即我的 excel 文件的路径很长,如 C:\Users\Blabla\Blabla\MyVeryLongFolderHierarchyPath\ MyExcelFile.xlsx)
解决方案是将我的 excel 文件直接放在较短的文件路径(如 C:\MyExcelFile.xlsx)下。我无法相信由于 2021 年的长文件路径会出现如此愚蠢的问题