users name their sheets all sorts of crazy things, but sometimes, I want to be able to get the sheet names regardless of what they are named
Considering that I already have my ConnectionString
strC set up to access my Excel file, I can just use the
GetOleDbSchemaTable method like this:
DataTable dtS;
using (OleDbConnection c = new OleDbConnection(strC))
{
c.Open();
dtS = c.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,
new object[] { null, null, null, "TABLE" });
c.Close();
}
Now
dtSchema holds the sheet names (in alphabetical order).
To get them out:
foreach(DataRow row in dtS.Rows)
Console.WriteLine(row.Field<string>("TABLE_NAME"));