Chapax
Chapax

Reputation: 251

Obtaining Excel worksheet reference by worksheet name via C#

I'm currently obtaining a handle to a Excel worksheet by using the below C# code:

Excel.Worksheet worksheet = (Excel.Worksheet)sheets.get_Item(15);
//Get the worksheet "SubSignOff" number

Is there any way that I can obtain the same by using the worksheet name "SubSignOff" ?

Upvotes: 20

Views: 56609

Answers (1)

Mike Rosenblum
Mike Rosenblum

Reputation: 12157

Instead of the using Excel.Workbook.Sheets collection, it's easier to access the Excel.Workbook.Worksheets collection, that way you can utilize early binding.

In your case, it could look something like the following:

Excel.Application excelApp = new Excel.Application();
excelApp.Visible = true;

Excel.Workbook workbook = excelApp.Workbooks.Open("C:\MyWorkbook.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);

// The key line:
Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets["SubSignOff"];

Hope this helps...

Upvotes: 45

Related Questions