2014-10-01 13 views
0

我正在開發項目中的excel add。如何將生成的excel表單移動到特定的第一和第二位置

我從數據庫表中動態生成Excel表。

現在我想移動位置第1和第2位的特定Excel表。

我試着像以下這是對Office版本2010

正常工作,但不工作的Office版本2013

我應該爲辦公室2013嗎?

如果活性片來「MYFirst」我使用以下代碼

Worksheet hiddenSheet; 
hiddenSheet = (Worksheet)Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets.Add(Type.Missing, Type.Missing, Type.Missing, Type.Missing);        
hiddenSheet.Move(Type.Missing, Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets[Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets.Count - 3]); 
// int count = Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets.Count; // in office version 2010 count comes 4 so (4-3=1) 

如果活性片來「MYSecond」我使用下面的代碼移動這對第一位置移動這對第一位置

Worksheet hiddenSheet; 
hiddenSheet = (Worksheet)Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets.Add(Type.Missing, Type.Missing, Type.Missing, Type.Missing); 
hiddenSheet.Move(Type.Missing, Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets[Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets.Count - 3]); 
// int count = Globals.ThisAddIn.Application.ActiveWorkbook.Worksheets.Count; // in office version 2010 count comes 5 so (5-3=2) 

我怎樣才能做到這一點?或如何找到其中的Office版本目前正在安裝,以便直接進行計數差異,並指定位置直接

MSDN給出了這樣的代碼來表移動到最後的位置 http://msdn.microsoft.com/en-us/library/xyhf0ksb.aspx

int totalSheets = this.Application.ActiveWorkbook.Sheets.Count; 
((Excel.Worksheet)Application.ActiveSheet).Move(
    this.Application.Worksheets[totalSheets]); 

如何移動表到第一位?

+1

如果您使用新的工作簿,會出現什麼情況?我認爲Excel 2010有3張,2013年只有1張。那裏有沒有「圖表」? – 2014-10-01 08:34:18

+0

恰好2010年有3個,2013年有1個因爲它無法移動必須改變我的MOVE SHEET表達式。但是如何?這是待辦事項的好方法?順便說一句,每當我正在創建一個新的工作簿,這將創建工作簿從數據庫 – Neo 2014-10-01 08:37:47

+1

如果你想將其移動到第一個位置,然後嘗試'hiddenSheet.Move(Before:Globals.ThisAddIn.Application.ActiveWorkbook.Sheets [1]) ;' – 2014-10-01 09:18:48

回答

0

假設表已經在Excel工作簿

讓片被稱爲MyFirstSheet

讓Excel工作簿被稱爲書

要在紙張MyFirstSheet移動到第一位置excel工作簿:

private static void moveSheetToFirstPosition(Excel.Workbook book){ 
    book.Sheets["MyFirstSheet"].Move(book.Sheets[1]); 
} 

這會把它放在第一個位置。

如果您有兩張紙可以移動,FirstSheet,SecondSheet,只需將SecondSheet移動到Sheet [1],然後移動FirstSheet Sheet [1]。從而使第二張紙在位置2.

希望這會有所幫助。

相關問題