2017-02-10 50 views
0

我有一個其中有大約32工作表中,我使用C#添加一個新的工作表中的工作簿,它總是增加了工作的結束,我想爲要添加的工作表作爲第二個工作表。是否可以控制添加的工作表的位置?控制位置添加工作表

xlApp = new Excel.Application(); 
xlWorkBook = xlApp.Workbooks.Add(misValue); 
xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1); 
xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets.Add(System.Reflection.Missing.Value, xlWorkBook.Worksheets[xlWorkBook.Worksheets.Count], System.Reflection.Missing.Value, System.Reflection.Missing.Value); 
xlWorkSheet.Name = "Added through code"; 
+0

試'xlWorkSheet.Move(Missing.Value,xlWorkBook.Sheets [1]);' –

+0

@AlexK。 - 我得到'名字'缺少的編譯錯誤'在當前上下文中不存在' – BellHopByDayAmetuerCoderByNigh

回答

1

Worksheets.Add有四個參數:Before,After,Count和Type。

你傳遞的「後」參數作爲最終的工作,這就是爲什麼它在末尾添加。

要添加新的工作表中的一個特定的地方,你必須指定。

如果你希望它是第二個工作,通過第一個工作表的「後」參數:

xlWorkBook.Worksheets.Add(System.Reflection.Missing.Value, 
     xlWorkBook.Worksheets[1], // worksheets are 1 based 
     System.Reflection.Missing.Value, 
     System.Reflection.Missing.Value); 

或者你可以將它命名工作表後添加:

xlWorkBook.Worksheets.Add(System.Reflection.Missing.Value, 
     xlWorkBook.Worksheets["sheet1"], 
     System.Reflection.Missing.Value, 
     System.Reflection.Missing.Value); 
+0

這比移動它好得多。 –

+0

我收到無效索引錯誤。這是否意味着它是基於1? – BellHopByDayAmetuerCoderByNigh

+1

[是它是](http://superuser.com/questions/988321/which-excel-objects-are-zero-based-and-which-are-one-based) – stuartd