Удалить некоторую строку на основе значения ячейки перед импортом в сетку данных с помощью C#
Я пытаюсь импортировать файл Excel в datagridview из хранилища. С помощью следующего кода я могу успешно загрузить две колонки из моего файла Excel. Но я хочу изменить свою программу Excel перед тем, как импортировать ее. В моем листе Excel один столбец содержит название города, а другой столбец - номер населения. Я хочу удалить строку, которая содержит менее 10000 человек. Но я действительно не знаю, как это сделать. Вот код, по которому я импортировал файл Excel.
private void button1_Click_1(object sender, EventArgs e)
{
String name = "Gemeinden_31.12.2011_Vergleich";
String constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
@"C:\C# tutorial Backup\Zensus_Gemeinden_org.xlsx" +
";Extended Properties='Excel 12.0 XML;HDR=YES;';";
OleDbConnection con = new OleDbConnection(constr);
OleDbCommand oconn = new OleDbCommand("Select * From [" + name + "$D8:E11300]", con);
con.Open();
OleDbDataAdapter sda = new OleDbDataAdapter(oconn);
DataTable data = new DataTable();
sda.Fill(data);
dataGridView1.DataSource = data;
}
2 ответа
Я говорю, что нам нужно добавить фильтр при получении только данных Excel, чтобы он импортировал только требуемые данные из Excel, как показано ниже:
private void button1_Click_1(object sender, EventArgs e)
{
String name = "Gemeinden_31.12.2011_Vergleich";
String constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
@"C:\C# tutorial Backup\Zensus_Gemeinden_org.xlsx" +
";Extended Properties='Excel 12.0 XML;HDR=YES;';";
OleDbConnection con = new OleDbConnection(constr);
OleDbCommand oconn = new OleDbCommand("Select * From [" + name + "$D8:E11300] Where [population number] > 10000", con);
con.Open();
OleDbDataAdapter sda = new OleDbDataAdapter(oconn);
DataTable data = new DataTable();
sda.Fill(data);
dataGridView1.DataSource = data;
}
Я думаю, что вы можете просто добавить, где условие в вашем запросе только.
Как "Где население> 10000
Так что он будет извлекать только там, где население более 10000