使用OLEDB Connection选择Excel工作表使用范围

有没有办法通过OLEDB Command对象选择Excel工作表使用范围?

因为我有一个包含400行的Excel文件,但是当我删除200行并尝试再次选择工作表时,它再次选择最多400行而不是选择200行。 这是我为选择工作表而编写的代码:

oledbConn = new OleDbConnection(connectionString); oledbCmd = new OleDbCommand("select * from [Sheet1$]", oledbConn); oledbConn.Open(); oledbDr = oledbCmd.ExecuteReader(); while(oledbDr.Read()) { } 

Afaik你可以用两种方式做到这一点:

第一。

在OleDBCommand中编写一个简单的SQL选择。 目前,您正在选择Excel中的所有行。 可能你从文档中删除了200行没有帮助,因为它仍然选择那些空行。

样品:

 select * from [Sheet1$] WHERE ID <= 200 

第二。

将您的整个数据加载到DataTable并以编程方式处理。

样品:

 DataTable xlsData = new DataTable(); List result = new List(); string query = string.Format("SELECT * FROM [{0}]", this.SheetName); OleDbDataAdapter dbAdapter = new OleDbDataAdapter(query, dbConnection); dbAdapter.Fill(xlsData); foreach (DataColumn column in xlsData.Columns) { result.Add(column.ColumnName); } 

尝试从[Sheet1 $]中选择DISTINCT *