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"
?
To reference a cell or range of cells in another worksheet in the same workbook, put the worksheet name followed by an exclamation mark (!) before the cell address. For example, to refer to cell A1 in Sheet2, you type Sheet2! A1.
Notes: The worksheet name comes before the cell address, followed by an exclamation mark ! . If the worksheet name includes spaces, enclose it in single quotation marks ' .
Consider a simple dynamic reference to Sheet2 using the INDIRECT in a formula like this: = INDIRECT ( $B$5 & "!" & "A1" )) If we change the sheet name in B5 to another (valid) name, INDIRECT will return a reference to A1...
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...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With