Czytanie wielu arkuszy Excela z różnymi nazwami arkuszy

Chciałbym wiedzieć, w jaki sposób mogę odczytać arkusz kalkulacyjny wielu arkuszy z inną nazwą arkusza w c # oraz z użyciem oledb.

Mam istniejący sposób czytania wielu arkuszy (ale ze stałą nazwą arkusza):

DataSet ds = new DataSet();
var excelConnectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=Excel 8.0", path); 
OleDbConnection connection = new OleDbConnection();
connection.ConnectionString = excelConnectionString;

var i = 1;
while (i <= 4)
{
    string query = "SELECT * FROM [Sheet" + i + "$]";
    ds.Clear();
    OleDbDataAdapter data = new OleDbDataAdapter(query, connection);
    data.Fill(ds);

    // other stuff
    i = i + 1;
}

Ten działa. Ale teraz jestem w innej sytuacji, w której nazwy arkuszy nie są poprawne, przykład: Arkusz1 to Pies, Arkusz2 to Kot Arkusz3 to Ptak.

Teraz moją troską jest, jak mogę zapętlić te nazwy arkuszy przy użyciu mojego istniejącego kodu.

questionAnswers(1)

yourAnswerToTheQuestion