在使用 c# 导入到 datagridview 之前,根据单元格值删除一些行

delete some row based on cell value before importing to datagridview using c#

我正在尝试将 excel 文件从 stoarage 导入到 datagridview。使用以下代码,我可以从我的 excel 文件中成功上传两列。但是我想在导入之前以编程方式修改我的 excel 文件。在我的 excel sheet 中,一列包含城市名称,另一列包含人口数量。我想删除包含低于 10,000 人的行。但我真的不知道该怎么做。这是我导入 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;


}

我认为您可以只在 select 查询中添加 where 条件。

喜欢“人口 > 10000

这样它只会检索人口超过 10000 的地方

我是说我们需要在仅检索 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;
    }