这是我导入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文件但是具有特定条件,我的第二列包含几组字符串(“First”,“Second”等...)我想只添加名为“First”的列“而不是整个清单。
我该怎么做?
答案 0 :(得分:2)
只需在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;
}
请注意,在您的connectionstring中指定HDR = YES,这意味着Excel工作表的第一个非空行包含被解释为列名的标题。您应该在WHERE条件
中更新查询设置正确的列名编辑在回复下面的评论时,如果您要检索AGE为12的每一行,查询将变为
string cmdText = "Select * From [" + name + "$] WHERE Age = 12";