【发布时间】: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 文件并复制相同的形状并尝试保存来检查您的系统。如果它被保存,那么它就是代码增强。
标签: c# excel visual-studio-2010 excel-interop comexception