Как импортировать все листы 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
содержит строки для каждого листа в импортированном файле.