如何只select表格中的内容而不是所有未使用/空的单元格值

我的目标是加载excel(只有一张)数据到DataTable。 所以我已经使用了下面的查询。

System.Data.OleDb.OleDbConnection MyConnection; System.Data.DataSet custdataset; System.Data.OleDb.OleDbDataAdapter MyCommand; MyConnection = new OleDbConnection { ConnectionString = ConnectionString(filename, "Yes") }; MyCommand = new System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", MyConnection); MyCommand.TableMappings.Add("Table", "TestTable"); custdataset = new System.Data.DataSet(); MyCommand.Fill(custdataset); MyConnection.Close(); 

但它将所有未使用/空的单元格值加载到数据表中。 如何避免这一点? 如何只加载使用的单元格值。 例如A1到F4不是整张纸。

 public DataTable ImportExceltoDatatable(string filepath) { // string sqlquery= "Select * From [SheetName$] Where YourCondition"; string sqlquery = "Select * From [SheetName$] Where Id='ID_007'"; DataSet ds = new DataSet(); string constring = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filepath + ";Extended Properties=\"Excel 12.0;HDR=YES;\""; OleDbConnection con = new OleDbConnection(constring + ""); OleDbDataAdapter da = new OleDbDataAdapter(sqlquery, con); da.Fill(ds); DataTable dt = ds.Tables[0]; return dt; } 

如果它匹配,你可以使用这个