Я пытаюсь импортировать выбранные строки из листа Excel в datagridview. В ходе поиска я узнал, что метод OLEDB предназначен для импорта данных. Диапазон ячеек, которые я могу импортировать, но если у меня есть огромный лист Excel и я хочу импортировать только ограниченные столбцы, например, c6: c10 и d6: d10. Как я могу достичь этого? мой код выглядит следующим образом:
public void demoread (string FileName, string SheetName, string StartCell, string EndCell)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
System.Data.DataTable dt = new System.Data.DataTable();
OleDbConnection cn = new OleDbConnection { ConnectionString = ConnectionString(FileName, "No") };
try
{
List<string> jop = new List<string>();
cn.Open();
string SelectStatement = string.Format(@"SELECT * FROM [{0}${1}:{2}]", SheetName, StartCell, EndCell);
//OleDbDataAdapter mydataadapter = new OleDbDataAdapter("Select * from [" + "Salary Sheet" + "$B4:H10 +$c7:c10]", cn);
//mydataadapter.Fill(dt);
//dataGridView1.DataSource = dt;
//string[] data = dt.;
OleDbCommand cmd = new OleDbCommand { CommandText = SelectStatement,Connection = cn };
OleDbDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
for (int i = 0; i < 100; i++)
{
MessageBox.Show(dr.GetString(0));
jop[i] = dr.GetString(0).ToString();
// MessageBox.Show(dr.GetString(0));
// dataGridView1.DataSource = dr;
}
}
}
else
{
//Console.WriteLine("No rows!!!");
}
}
catch(Exception er)
{
MessageBox.Show(er.ToString());
}
}
в комментариях я также пробовал с командой oledbdataadapter
. Я даже пытался сохранить результаты в определенном списке, чтобы позже использовать их как одну таблицу данных в datagridview. Пожалуйста, помогите мне, и даже если мой подход правильный.