Excel COMException:0x800A03EC 文档未保存

Posted

技术标签:

【中文标题】Excel COMException:0x800A03EC 文档未保存【英文标题】:Excel COMException : 0x800A03EC Document not saved 【发布时间】:2015-04-22 10:32:17 【问题描述】:

我在我的 WinForms 应用程序中使用 Interop.Excel。该应用程序用于将一些工作表从一个工作簿复制到新创建的工作簿。

当我不复制形状时,会保存新创建的工作簿。但是,当我将形状复制到新创建的工作表中时,不会保存工作簿,并且会引发 COMException 并显示消息“Document not saved”。

场景:

我同时处理三个工作簿。

MainWorkbook - 此工作簿包含要写入新工作簿的数据。

ResourceWorkbook - 这包含复制到新工作簿中的工作表。

OutputWorkbook - 这是结果工作簿。

第 1 步:打开 MainWorkbook。获取要写入 OutputWorkbook 的数据。

第 2 步:将数据写入 OutputWorkbook

第 3 步:从资源文件中打开 ResourceWorkbook 以复制工作表。

第 4 步:将工作表从 ResourceWorkbook 复制到 OutputWorkbook

第 5 步:保存 OutputWorkbook

在步骤 5 中,如果在步骤 4 中没有复制图像的工作表,则保存 OutputWorkbook。但是,如果存在包含图像的工作表,则不会保存 OutputWorkbook。

我正在使用 VS2010 和 MS Office 2010。

【问题讨论】:

首先尝试用形状覆盖现有的 excel,如果仍然无法正常工作,请通过创建新的 excel 文件并复制相同的形状并尝试保存来检查您的系统。如果它被保存,那么它就是代码增强。 【参考方案1】:

保存您的 OutputWorkbook。 重新打开它,然后尝试复制。看看它是否有效。

【讨论】:

这就像一个魅力。问题是因为在复制之前没有保存工作簿吗??

以上是关于Excel COMException:0x800A03EC 文档未保存的主要内容,如果未能解决你的问题,请参考以下文章

System.Runtime.InteropServices.COMException (0x800A03EC)

System.Runtime.InteropServices.COMException (0x800A03EC): 无法访问文件

通过 COM 读取 Office PPT 文件提示 COMException 错误码 0x80004005 可能原因

创建 Excel 应用程序时出现 COM 异常 80040154

使用 C# 代码打开 Excel 工作簿时出错

如何避免 System.Runtime.InteropServices.COMException?