【发布时间】:2015-05-08 06:15:15
【问题描述】:
我在 .NET 中使用 Excel 互操作,在“Excel._WorkSheet.Copy(Type.Missing,Type.Missing)”上遇到 COMException。
这种行为很奇怪:我正在从基于模板的 .xls 复制工作表并生成一个带有指定工作表的新工作簿(可能由用户从 GUI 中选择)。一旦遇到 Excel._Worksheet WorkSheet.Copy(Type.Missing,Type.Missing),就会抛出 COMException。
“发生了“System.Runtime.InteropServices.COMException”类型的第一次机会异常。
附加信息:HRESULT 异常:0x800A03EC"
在尝试了不同的方法后,我将手动指定的工作表复制到另一个新创建的 Excel 实例中,并将此工作簿作为相同代码的源。在这里,它工作得很好!它通过打开一个新的 excel 实例创建了一个精确的副本,我一点也不例外。
我不知道为什么会发生这种行为?是否与该工作表中的内容有关,如果是,则将相同且准确的工作表复制到另一个新创建的空白工作表中,并且一切正常。
我必须为用户给出的指定工作表生成报告,所以我必须从哪里打开模板化工作簿,我需要复制那些指定的工作表,然后这些工作表将用指定的数据填充。
我正在使用以下代码:
Excel._Worksheet WorkSheet = null;
Excel.Application excel = new Excel.Application();
excel.Visible = true;
excel.DisplayAlerts = false;
_ExcelWorkbook = excel.Workbooks.Open(a_WorkbookName, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,true);
WorkSheet = (Excel.Worksheet)_ExcelWorkbook.Sheets[1];
WorkSheet.Copy(Type.Missing, Type.Missing); // throws COM Exception of 0x800A03EC.
问候 乌斯曼
【问题讨论】:
-
谷歌“excel 错误 1004 工作表副本”来查找匹配项。
标签: c# excel com excel-interop