35

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(对象文件名、对象文件格式、对象密码、对象 WriteResPassword、对象 ReadOnlyRecommended、对象 CreateBackup、XlSaveAsAccessMode AccessMode、对象 ConflictResolution、对象 AddToMru、对象 TextCodepage、对象 TextVisualLayout、对象本地)

请帮忙 ..!

4

9 回答 9

55

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

Microsoft 正式在 Windows server 2008 上不支持 Microsoft Office 2003 Interop。

但是在对代码和搜索进行大量排列和组合之后,我们遇到了一种适用于我们场景的解决方案。

解决方案是弥补 Windows 2003 和 2008 维护其文件夹结构的方式之间的差异,因为 Office Interop 依赖于桌面文件夹在中间打开/保存文件。2003 系统在 systemprofile 下包含 2008 年不存在的桌面文件夹。

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

C:\Windows\System32\config\systemprofile

C:\Windows\SysWOW64\config\systemprofile

这对我有用...

还要检查是否安装了 .NET 1.1,因为 Interop 需要它,而 Windows Server 2008 没有预安装它

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

多谢你们..!

于 2010-12-15T10:10:18.747 回答
17

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

  1. 转到“开始”->“运行”并输入“dcomcnfg”
  2. 这将打开组件服务窗口,展开“控制台根”->“计算机”->“DCOM 配置”
  3. 在组件列表中找到“Microsoft Excel 应用程序”。
  4. 右键单击条目并选择“属性”
  5. 转到属性对话框上的“身份”选项卡。
  6. 选择“交互式用户”。

此处提到的最后一段提供

于 2015-07-18T20:10:50.117 回答
5

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

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

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

Workbook workbook = excelApplicationObject.Workbooks.Open(path, CorruptLoad: true);
于 2010-12-15T10:06:11.677 回答
2

尝试保存 excel 文件时,我看到了同样的错误。当我使用 MS Office 2003 时,代码运行良好,但在升级到 MS Office 2007 后,我开始看到这一点。每当我尝试将 Excel 文件保存到服务器或远程文件共享时,都会发生这种情况。

我的解决方案虽然很简陋,但效果很好。我只是让程序将文件保存在本地,就像用户的 C:\ 驱动器一样。然后使用“System.IO.File.Copy(File, Destination, Overwrite)”方法将文件移动到服务器。然后您可以删除 C:\ 驱动器上的文件。

效果很好,也很简单。但不可否认,这不是最优雅的方法。

希望这可以帮助!在这个想法突然出现之前,我在网上找到任何解决方案时遇到了很多麻烦。

于 2012-01-26T07:38:59.207 回答
1

这是IIS运行时的权限问题我遇到了这个问题,我以这种方式解决了它

我继续文件夹

C:\Windows\System32\config\SystemProfile

C:\Windows\SysWOW64\config\SystemProfile

是受保护的系统文件夹,它们通常有锁。

右键单击-> 卡安全-> 单击编辑-> 添加 untente “Autenticadet 用户”并分配权限。

至此一切都解决了,如果您仍然有问题,请尝试将所有权限授予“所有人”

于 2014-10-24T07:28:11.537 回答
0

对于所有仍然遇到这个问题的人,我只花了 2 天时间来追踪这该死的东西。当数据集中没有行时,我遇到了同样的错误。似乎很明显,但错误消息非常模糊,因此需要 2 天。

于 2012-02-29T12:51:26.717 回答
0

就我而言,问题是将标题样式设置为“标题 1”,但该样式在 Word 中不存在,我收到错误,因为它不是英语办公室。

于 2019-07-03T12:31:44.170 回答
0

由于 excel 文件的路径,我遇到了这个问题,每当我尝试打开 excel 文件时,我都会收到错误消息(即我的 excel 文件的路径很长,例如 C:\Users\Blabla\Blabla\MyVeryLongFolderHierarchyPath\MyExcelFile.xlsx )

解决方案是直接在较短的文件路径(如 C:\MyExcelFile.xlsx)下携带我的 excel 文件。我不敢相信由于 2021 年的长文件路径会出现如此愚蠢的问题

于 2021-03-05T08:32:43.480 回答
0

我偶然发现的一个奇怪的解决方案是查看是否有任何 Excel 进程在后台运行。确保代码实际上在自行清理并关闭所有 Excel 进程。

于 2022-01-10T20:15:11.570 回答