我一直在網上尋找答案。有幾十個「解決方案」,但似乎沒有什麼正確的。我正在構建的應用程序(使用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 –