我想創建一個有多個工作表的工作簿,但我正在儘快嘗試在工作簿中添加第6個工作表時發生COMException。 那麼有沒有辦法在工作簿中擴展工作表? 如何避免使用c#excel introp將多個工作表添加到工作簿時發生COMException?
回答
如果您使用的是循環,讓您的工作在一個循環,不知道有多少張工作簿在那裏,那麼我會建議找總表在工作簿計數,然後循環,以獲得工作表對象
例如
int SheetCount = xlWorkBook.Sheets.Count;
會給你在該工作簿,你可以在使用For循環片材的數量。
如果你需要更多的工作表,那麼你可以使用xlexcel.Worksheets.Add
來獲得更多的工作表。
跟進從評論:
我試過這種方法,並且是它不會引發異常,當我試圖從工作簿超越5工作表。但它覆蓋數據(我正在寫第6張紙)到第5張紙上,即使我嘗試在工作簿中添加一張後獲得第6張工作表。看起來下面的代碼片段返回第五個工作簿中的最後一個可用工作表。 m_ExcelSheet =(Excel._Worksheet)(m_ExcelSheets.get_Item(6));如何在添加新工作表後停止在第五個工作表中覆蓋數據? - saurabh.mridul 1分鐘前
增加一個工作表的語法是
expression.Add(Before, After, Count, Type)
如果不指定在.Add
然後工作表將作爲第一個工作表的paramenters。
當您在添加工作表而沒有指定參數後循環工作表時,worksheets(1)
將成爲您添加的最新工作表。因此你的工作表5(現在工作表6)被覆蓋。
您需要指定添加的新工作表必須添加到現有工作表的末尾。的參數
- 之前
描述:(可選)(數據類型:變型),它指定在添加新的片材之前的紙張的對象。
- 之後:(可選)(數據類型:變量)一個對象,用於指定添加新工作表之前的工作表。
- 計數 :(可選)(數據類型:變量)要添加的工作頁數。默認值是1。
- 類型 :(可選)(數據類型:變量)指定工作表類型。可以是以下XlSheetType常量之一:xlWorksheet,xlChart,xlExcel4MacroSheet或xlExcel4IntlMacroSheet。如果您要基於現有模板插入工作表,請指定模板的路徑。缺省值是xlWorksheet。
下面是如何在最後添加工作表的示例。
//~~> Add a new worksheet at the end of the worksheets
xlWorkSheet = xlWorkBook.Sheets.Add(Type.Missing, xlWorkBook.Sheets[xlWorkBook.Sheets.Count], Type.Missing, Type.Missing);
是的,感謝您的幫助。 對不起,我沒有閱讀你的完整評論,因爲你正在談論我已經嘗試過的同樣的事情。 現在,我可以擴展到工作簿中的任意數量的工作表,具體取決於我的數據行嗎? –
是的,你可以:)。如果您使用的是Excel 2007+,那麼工作表中的最大行數爲1048576。所以如果你有超過5242880(1048576 X 5)的行,那麼你將需要第6張表格。 –
我試過這種方法,並且當我試圖從工作簿中獲取超出5的工作表時,它不會拋出異常。但它覆蓋數據(我正在寫第6張紙)到第5張紙上,即使我嘗試在工作簿中添加一張後獲得第6張工作表。看起來下面的代碼片段返回第五個工作簿中的最後一個可用工作表。 m_ExcelSheet =(Excel._Worksheet)(m_ExcelSheets.get_Item(6)); 如何停止在添加新工作表後覆蓋第五個工作表中的數據? –
- 1. COMException關閉Excel工作簿
- 2. 將表格添加到Excel工作簿
- 3. 將多個Excel工作簿合併到一個工作簿中
- 4. 將Excel工作表添加到工作簿結尾
- 5. 將工作表添加到另一個工作簿創建的工作簿
- 6. 將多個工作表映射到XSD的Excel工作簿
- 7. 使用VB代碼將新工作表添加到現有的Excel工作簿
- 8. Excel VBA將多張工作簿拆分爲多個工作表
- 9. 如何創建Excel工作表並將其添加到Excel中的多個工作簿InterOp
- 10. 添加工作表到當前Excel工作簿
- 11. 如何使用Excel VBA激活並將行數據從多個工作簿中的多個工作表複製到另一個工作簿的工作表中?
- 12. excel vba將多個工作簿中的多個工作表合併到一個工作簿中
- 13. 將多個Excel工作簿合併到一個具有多個工作表的工作簿中
- 14. 將許多excel工作簿的數據複製到另一個excel工作簿
- 15. 如何確定Excel工作簿中有多少個工作表?
- 16. 如何從Excel工作簿打開多個工作表?
- 17. 將工作表添加到當前工作簿
- 18. 將Excel工作表拆分爲多個工作簿
- 19. 將多個Excel工作表追加到一個工作表中
- 20. 將表格從一個Excel工作簿導入到另一個工作簿表
- 21. 使用多個Excel工作簿
- 22. 將單元格從一個工作簿複製到多個工作簿excel
- 23. 將工作表從一個工作簿複製到另一個工作簿
- 24. Python xlsxwriter - 將工作表添加到現有工作簿
- 25. 將工作表導入到一個excel工作簿中
- 26. 將Excel工作簿組合到一個工作表中
- 27. 如何在Excel中將兩個Excel工作簿合併爲一個工作簿?
- 28. 將Excel工作表從一個工作簿複製到另一個工作簿使用Powershell
- 29. 如何將多個Excel文件合併到具有多個工作表的單個Excel工作簿中?
- 30. excel中的用戶表單將信息添加到多個工作表或工作簿
意味着你能夠添加5個工作表?顯示您如何添加工作表的代碼 –
是否可以複製粘貼代碼... –
沒有添加工作表的方法。我所要做的就是從這樣的工作簿中獲取工作表 m_ExcelSheet =(Excel._Worksheet)m_ExcelSheets.get_Item(++ m_CurrentWorkSheetInUse)); 如果我在循環中迭代執行它,一旦達到m_CurrentWorkSheetInUse = 5,就會拋出異常。 –