Как выбрать из любой таблицы в Excel файл с помощью OleDbDataAdapter
Я использую OleDbDataAdapter
извлечь DataSet
из файла excel, но у меня проблемы с SELECT
инструкция
DataSet excelDataSet = new DataSet();
using (OleDbConnection con = new System.Data.OleDb.OleDbConnection(connectionString))
{
con.Open();
OleDbDataAdapter cmd = new System.Data.OleDb.OleDbDataAdapter("select * from [Name of spreadsheet]", con);
cmd.Fill(excelDataSet);
con.Close();
}
если вы видите, что у меня есть "select * from [Name of spreadsheet]"
, но мне нужно получить любые электронные таблицы или, например, 1-ю таблицу, но название этой таблицы может быть любым.
Как указать это? Это специальные символы, такие как "select * from [%]"
1 ответов
вам нужно знать имя листа, чтобы применить к нему инструкцию select.
И нужно добавить специальный символ $
в конце имени.
Предположим, у вас есть лист с именем MyFirstSheet
затем вы можете выбрать строки из его
OleDbDataAdapter cmd = new OleDbDataAdapter("select * from [MyFirstSheet$]", con);
в случае, если вы не знаете названия ваших листов, вы можете позвонить
using (OleDbConnection con = new OleDbConnection(connectionString))
{
con.Open();
DataTable dt = con.GetSchema("Tables");
string firstSheet = dt.Rows[0]["TABLE_NAME"].ToString();
...... work with the first sheet .....
}
этот пример должен дать вам имя первого листа в файле excel (другие листы доступны в последовательные строки после первого)