@amer Я делал это только через Jet-двигатель, когда знал мои названия столбцов. Я предоставил ссылку, которая, надеюсь, поможет.

ыбрать отдельные столбцы из таблицы Excel, а не все столбцы

string connectionString = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=YES;IMEX=1;""", txtPath.Text);
string query = String.Format("select * from [{0}$]", "Sheet1");
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(query, connectionString);
DataSet dataSet = new DataSet();
dataAdapter.Fill(dataSet);
dataGridView1.DataSource = dataSet.Tables[0];    

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

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