将数据从excel导入到具有特定条件的DataGridview中

这是我如何导入我的Excel文件:

 stirng file = "c:\myFile.xlsx"; DataGridView dgvIM; private void Import() { String name = "Items"; String constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + file + ";Extended Properties='Excel 8.0;HDR=YES;';"; OleDbConnection con = new OleDbConnection(constr); OleDbCommand oconn = new OleDbCommand("Select * From [" + name + "$]", con); con.Open(); OleDbDataAdapter sda = new OleDbDataAdapter(oconn); System.Data.DataTable data = new System.Data.DataTable(); sda.Fill(data); dgvIM.DataSource = data; } 

我想要做的是导入我的Excel文件,但具体条件,我的第二列包含几个string组(“第一”,“第二”等..),我想只添加名称为“第一”的列,而不是整个列表。

我怎样才能做到这一点 ?

就像这样在sql命令中使用where条件

 string cmdText = "Select * From [" + name + "$] WHERE secondColumnName = 'First'"; using(OleDbConnection con = new OleDbConnection(constr)) using(OleDbCommand oconn = new OleDbCommand(cmdText con)) { con.Open(); OleDbDataAdapter sda = new OleDbDataAdapter(oconn); System.Data.DataTable data = new System.Data.DataTable(); sda.Fill(data); dgvIM.DataSource = data; } 

请注意,在您的连接string中,您指定HDR = YES,这意味着Excel表格的第一个非空行包含标题,这些标题被解释为列名称。 您应该更新您的查询在WHERE条件中设置正确的列名称

编辑作为回应您的评论如下,如果你想检索每一行的年龄是12查询成为

 string cmdText = "Select * From [" + name + "$] WHERE Age = 12";