2013-01-22 43 views
1

嗨,大家好,我有一個Excel文件,我想用作新的Excel文件的源代碼。我看到一些可以複製所有工作表的示例,但是我的問題是我想從源文件中僅複製選定的工作表並使用選定的工作表創建新文件。例如這將是如果我的主表有x,y,z,c,f,g和用戶選擇z,f,gi只會選擇這三個創建一個新的.xlsx文件並將它們放在那裏。這可能與c# ?謝謝你提前如何將選定工作表從Excel文件複製到由程序創建的新Excel文件

回答

1

您可以複製所選擇的薄片例如在VBA,下面將創建一個與所選擇的薄片

Sheets(Array("Sheet1", "Sheet3", "Sheet4")).Copy 

在C#中一個新的工作簿,你可以這麼一回事

private void button1_Click(object sender, EventArgs e) 
    { 
     Excel.Application xlexcel; 
     Excel.Workbook xlWorkBook; 
     Excel.Sheets worksheets; 

     object misValue = System.Reflection.Missing.Value; 

     xlexcel = new Excel.Application(); 

     xlexcel.Visible = true; 

     //~~> Open a File 
     xlWorkBook = xlexcel.Workbooks.Open("C:\\Sample.xlsx", 0, true, 5, "", "", true, 
     Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0); 

     //~~> Specify the sheets you want to copy 
     String[] selectedSheets = { "a", "c", "d" }; 

     //~~> Set your worksheets 
     worksheets = xlWorkBook.Worksheets; 

     //~~>Copy it. This will create a new Excel file with selected sheets 
     ((Excel.Sheets)worksheets.get_Item(selectedSheets)).Copy(); 

    } 

截圖

enter image description here

+0

非常感謝你。這就是我需要的方式。順便說一句,如果我可以再問一個問題;如何在新的Excel創建後關閉打開的Sample.xlsx – Codette

+1

'xlWorkBook.Close(true,misValue,misValue);' –

+0

它是否正常要求救我改變了sample.xlsx?我的意思是新文件仍然打開。 – Codette

-2

是的,它是在命令提示符下,你可以使用copy命令從多個Excel工作表,以單張 命令將文件複製可能是C:的資源文件的文件拷貝/路徑destinationfile

感謝

+0

是不是我試圖say.There是A.xlsx了10張,我想創建一個表的不同表的組合,其副本被詢問給用戶。 – Codette

相關問題