Jak zaimportować wszystkie arkusze Excel do DataSet w C #
Szukałem w tym Internecie i nie mogłem znaleźć takiego pytania. Wszyscy szukali sposobu zaimportowania pojedynczego arkusza do pliku Excela, ale chcę zaimportować wszystkie arkusze w pliku doDataTable
jest w środkuDataSet
bez znajomości nazw arkuszy.
W Excelu niewiele robiłem wcześniej. Ten przykładowy i częściowo działający kod, który znalazłem w Internecie, analizuje tylko podaną nazwę arkusza:
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;
}
W powyższym kodzie, jak widzisz, nazwa_katalogu roboczego powinna zostać przekazana, aby zapytanie mogło wiedzieć, gdzie szukać do zaimportowania. W moim przypadku chcę, aby przemierzał wszystkie arkusze, bez względu na to, jak się nazywają, i importuje je do indywidualnychDataTable
jest zDataSet
.
W gruncie rzeczy ostatnią rzeczą będzieDataSet
w którym każdyDataTable
przechowuje wiersze dla każdego arkusza w importowanym pliku.