2010-01-06 63 views
10

我有一個帶有5個工作表的Excel文件,我想用c#代碼打開它 並且打開時我希望工作表編號3被激活。在特定工作表上打開Excel文件

我該怎麼做?

+0

你想自動化excel還是想在應用程序的網格中顯示數據?或者是其他東西? – 2010-01-06 10:50:46

回答

23

像這樣:

using Excel; 

Excel.Application excelApp = new Excel.ApplicationClass(); 

    // if you want to make excel visible to user, set this property to true, false by default 
    excelApp.Visible = true; 

// open an existing workbook 
string workbookPath = "c:/SomeWorkBook.xls"; 
    Excel.Workbook excelWorkbook = excelApp.Workbooks.Open(workbookPath, 
     0, false, 5, "", "", false, Excel.XlPlatform.xlWindows, "", 
     true, false, 0, true, false, false); 



// get all sheets in workbook 
    Excel.Sheets excelSheets = excelWorkbook.Worksheets; 

    // get some sheet 
string currentSheet = "Sheet1"; 
    Excel.Worksheet excelWorksheet = 
     (Excel.Worksheet)excelSheets.get_Item(currentSheet); 

// access cell within sheet 
    Excel.Range excelCell = 
     (Excel.Range)excelWorksheet.get_Range("A1", "A1"); 

希望這有助於

MDSN信息here

+0

它只適用於.Visible = True。用.Visible = False怎麼樣? – Denis 2014-02-05 22:30:51

3

什麼是這樣的:(未經測試)

//using Excel = Microsoft.Office.Interop.Excel; 

Excel.ApplicationClass app = new Excel.ApplicationClass(); 
Excel.Workbook workbook = app.Workbooks.Open("YourFile.xls", 
    Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
    Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
    Type.Missing, Type.Missing, Type.Missing, Type.Missing); 
Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Sheets["Number 3"]; 
worksheet.Activate(); 
+0

這對我有效:) – Somebody 2012-11-19 15:52:08

+0

只適用於.Visible = True – Denis 2014-02-05 22:16:27

+0

有人可以確認@Denis – Si8 2016-12-15 19:36:11

1

如果想要呈現的視覺反饋對用戶來說,這兩條語句將設置激活的工作表和設置因此LECT範圍:

考慮包括以下語句之前立即初始化Excel.Range ...

//設置活動工作表在Excel

excelWorksheet.Activate()

而且初始化Excel.Range後立即考慮以下語句...

//設置Excel中的活動範圍

excelCell.Activate()

0
public static Workbook openExternalWorkBook(String fileName) 
    { 
     Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();    
     excel.Visible = false; 
     return excel.Workbooks.Open(fileName, false); 
    } 
相關問題