Click here to Skip to main content
13,458,213 members
Click here to Skip to main content
Add your own
alternative version


106 bookmarked
Posted 25 Aug 2004

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></span>
/// This mehtod retrieves the excel sheet names from 
/// an excel workbook.
/// <span class="code-SummaryComment"></summary></span>
/// <span class="code-SummaryComment"><param name="excelFile">The excel file.</param></span>
/// <span class="code-SummaryComment"><returns>String[]</returns></span>
private String[] GetExcelSheetNames(string excelFile)
  OleDbConnection objConn = null;
  System.Data.DataTable dt = null;

    // Connection String. Change the excel file to the file you
    // will search.
    String connString = "Provider=Microsoft.Jet.OLEDB.4.0;" + 
        "Data Source=" + excelFile + ";Extended Properties=Excel 8.0;";
    // Create connection object by using the preceding connection string.
    objConn = new OleDbConnection(connString);
    // Open connection with the database.
    // Get the data table containg the schema guid.
    dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
    if(dt == null)
      return null;

    String[] excelSheets = new String[dt.Rows.Count];
    int i = 0;

    // Add the sheet name to the string array.
    foreach(DataRow row in dt.Rows)
      excelSheets[i] = row["TABLE_NAME"].ToString();

    // Loop through all of the sheets if you want too...
    for(int j=0; j < excelSheets.Length; j++)
      // Query each excel sheet.

    return excelSheets;
  catch(Exception ex)
    return null;
    // Clean up.
    if(objConn != null)
    if(dt != null)



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

Kenneth Young
United States United States
No Biography provided

You may also be interested in...

Comments and Discussions

QuestionHow to get the real names? Without $ or ' Pin
fanndibong6-Apr-08 18:39
memberfanndibong6-Apr-08 18:39 
AnswerRe: How to get the real names? Without $ or ' Pin
FilipKrnjic24-Oct-11 22:03
memberFilipKrnjic24-Oct-11 22:03 
GeneralGood article Pin
junique4-Mar-08 8:48
memberjunique4-Mar-08 8:48 
GeneralRe: Good article Pin
ronny_2957-Jan-09 16:47
memberronny_2957-Jan-09 16:47 
Generalaccess to excel Pin
hamedeng7-Sep-07 7:37
memberhamedeng7-Sep-07 7:37 
GeneralC# - Inserting Rows in Excel WorkSheet Pin
XBenedict12-Jul-07 22:04
memberXBenedict12-Jul-07 22:04 
GeneralRe: C# - Inserting Rows in Excel WorkSheet Pin
privacy space23-Aug-07 22:35
memberprivacy space23-Aug-07 22:35 
GeneralPassword Protected Pin
RedDogEdward5-Dec-06 1:51
memberRedDogEdward5-Dec-06 1:51 
GeneralDoesn't seem to work with Excel 5.0 files. Pin
tolsen649-Feb-06 12:37
membertolsen649-Feb-06 12:37 
GeneralAdd Worksheet Pin
Bikash Rai7-Oct-05 20:25
memberBikash Rai7-Oct-05 20:25 
Is there any way by chance that I will be able to add a worksheet using ADO? Also is there any way that will enable me to create a new xls file and fill its contents with the values in a datatable?

Bikash Rai
GeneralGetting retriving excel sheets Pin
godfathers2-Mar-05 22:09
membergodfathers2-Mar-05 22:09 
GeneralRe: Getting retriving excel sheets Pin
abhi kumar16-Aug-05 20:05
memberabhi kumar16-Aug-05 20:05 
QuestionA Better Way??? Pin
Anonymous30-Oct-04 12:32
sussAnonymous30-Oct-04 12:32 
AnswerRe: A Better Way??? Pin
Mike Ellison30-Oct-04 13:59
memberMike Ellison30-Oct-04 13:59 
AnswerRe: A Better Way??? Pin
gg423713-Nov-09 0:44
membergg423713-Nov-09 0:44 
GeneralExcel Sheets Pin
Anonymous15-Sep-04 9:23
sussAnonymous15-Sep-04 9:23 
GeneralGood Work Pin
terence wallace30-Aug-04 17:45
memberterence wallace30-Aug-04 17:45 
Generalgood tip Pin
Ashley van Gerven26-Aug-04 16:31
memberAshley van Gerven26-Aug-04 16:31 
GeneralRe: good tip Pin
Labrat00226-Aug-04 20:17
memberLabrat00226-Aug-04 20:17 
GeneralRe: good tip Pin
Ashley van Gerven30-Aug-04 3:18
memberAshley van Gerven30-Aug-04 3:18 
QuestionHidden Sheets? Pin
Mike Ellison26-Aug-04 7:12
memberMike Ellison26-Aug-04 7:12 
AnswerRe: Hidden Sheets? Pin
Ken G Young30-Aug-04 9:47
memberKen G Young30-Aug-04 9:47 
QuestionRe: Hidden Sheets? Pin
ankitbansal8230-Oct-06 1:16
memberankitbansal8230-Oct-06 1:16 
AnswerRe: Hidden Sheets? Pin
SuperDuckZA_PS27-Jul-07 2:26
memberSuperDuckZA_PS27-Jul-07 2:26 

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.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web04 | 2.8.180323.1 | Last Updated 26 Aug 2004
Article Copyright 2004 by Kenneth Young
Everything else Copyright © CodeProject, 1999-2018
Layout: fixed | fluid