Click here to Skip to main content
12,241,861 members (52,087 online)
Click here to Skip to main content
Add your own
alternative version


106 bookmarked

C# - Retrieve Excel Workbook Sheet Names.

, 25 Aug 2004
Rate this:
Please Sign up or sign in to vote.
This article provides a way to retrieve the worksheet names of an Excel Workbook. This can be used to query a workbook using ADO.NET if you do not know the names of the worksheets.


There are many examples using ADO.NET to query an Excel Workbook but they all have a limitation, you must know the worksheet name. This might work if you know the name of the worksheet, but what if you don't? If your program is dynamic and your sheet names differ for each Excel workbook, you need a way to extract the names of the sheets. The code example provides you with a way to retrieve the work sheet names.

The following method returns a string array containing the names of the sheets. The method also shows how to loop through the array. The method has one input parameter excelFile which is the location of the Excel file.

Code Example

/// <span class="code-SummaryComment"><summary>



This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


About the Author

Kenny Young
United States United States
No Biography provided

You may also be interested in...

Comments and Discussions

QuestionFaulty behavior Pin
cilker18-Jun-12 11:09
membercilker18-Jun-12 11:09 
I have encountered a problem with this method of retrieving the sheet names. The code looks very fine and it also works but there seem to be pathological sheet names that lead to false returned name strings by this db-connection method, namely, if your sheet name contains a dot (e.g. Release 7.2) then the returned string has replaced the dot with a # (e.g. Release 7#2). When your sheet has names containing # then they are not replaced with another character so you cannot distinguish between replaced dots or with correct named sheets. I also encountered that my first sheet with the name Release 7.2 was returned with an invisible backslash behind the $ character whereas the second sheet only had the $ character, so when I stripped the strings of their last character then the second sheet was without the $ character but the first sheet was with $ character because deleting the last character deleted the backslash character. You should try it out to acknowledge my findings, i.e. give a name sheet 1.3 and the second sheet 1#3 and you should get indistiguishable strings with # in the name. Perhaps the string of the first returned string also contains an invisible backslash as with the name of my first sheet string.

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.160426.1 | Last Updated 26 Aug 2004
Article Copyright 2004 by Kenny Young
Everything else Copyright © CodeProject, 1999-2016
Layout: fixed | fluid