Как импортировать все листы Excel в DataSet в C #

Я искал в интернете это и не мог найти такой вопрос. Все искали способ импортировать отдельный лист в файл Excel, но я хочу импортировать все листы в файл вDataTableвDataSet не зная имен листов.

Я не делал много вещей с Excel раньше. Это пример и частично рабочий код, который я нашел в интернете, и он анализирует только указанное имя листа:

public static DataSet Parse(string fileName, string workSheetName)
{
    string connectionString = string.Format("provider=Microsoft.Jet.OLEDB.4.0; data source={0};Extended Properties=Excel 8.0;", fileName);
    string query = string.Format("SELECT * FROM [{0}$]", workSheetName);

    DataSet data = new DataSet();
    using (OleDbConnection con = new OleDbConnection(connectionString))
    {
        con.Open();
        OleDbDataAdapter adapter = new OleDbDataAdapter(query, con);
        adapter.Fill(data);
    }

    return data;
}

В приведенном выше коде, как вы видите, должно быть передано workSheetName, чтобы запрос мог знать, куда обратиться для импорта. В моем случае я хочу, чтобы он прошел все листы, независимо от того, как они названы, и импортировал их в отдельный файл.DataTableэтоDataSet.

Таким образом, по сути, последняя вещь будетDataSet в котором каждыйDataTable содержит строки для каждого листа в импортированном файле.

Ответы на вопрос(4)

Ваш ответ на вопрос