我一直在网上寻找答案。有几十个“解决方案”,但似乎没有什么正确的。我正在构建的应用程序(使用C#)从mdb querydef中提取数据,并使用两个工作表创建一个Excel工作簿。那部分工作完美。现在对于那些应该很简单的部分:我有一个包含多个工作表的工作簿(每个工作表将计算不同的数据)我需要代码来打开“模板”工作簿,复制正确的工作表,并将副本放入新创建的另外两个工作表的工作簿。下面是我觉得代码示例“应该”工作:根据我的MSDN文档,Worksheet.Copy(读数如何将Excel工作表从一个工作簿复制到另一个工作簿
_Application xlApp;
Workbook xlTemplateWB;
Workbook xlTempWB;
object missing = System.Reflection.Missing.Value;
xlApp = new ApplicationClass();
xlApp.Visible = true;
//Open Bench Sheet Template
xlTemplateWB = xlApp.Workbooks.Open(Elmnt.getDBPath() + TEMPLATENAME, 0, true, 5, "", "",
false, XlPlatform.xlWindows, "", true, false, 0, true, false, false);
//Open temporary workbook
xlTempWB = xlApp.Workbooks.Open(XLTempDir + XLTempName, 0, false, 5, true, "", true,
XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
//Copy "BOD" Worksheet
xlTempWB.Worksheets.Copy(xlTemplateWB.Worksheets["BOD"]);
xlTempWB.Save();
//Close Workbooks
xlTempWB.Close(true, missing, missing);
xlTemplateWB.Close(true, missing, missing);
xlApp.Quit();
//Release Objects
releaseObject(xlTempWB);
releaseObject(xlTemplateWB);
releaseObject(xlApp);
从文档看来,复制参数指定的目标不是源。所以你可能想尝试像'sourceWB.Worksheets.Copy(destWB)'这样的东西。请参阅http://msdn.microsoft.com/en-us/library/microsoft.office.interop.excel.sheets.copy%28v=office.14%29.aspx –
好的。但是,xlTemplateWB.Worksheets [“BOD”]。Copy(xlTempWB);是无效的语法。我假设我可以创建一个Worksheet的实例,然后将其复制到新的工作簿。但是,如何使工作表的新实例与要复制的工作表相同? –
我试过:((工作表)xlTemplateWB.Worksheets [“BOD”])。Copy(xlTempWB);但现在我收到此错误:从HRESULT异常:0x800A03EC –