有没有办法通过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())
{
}
答案 0 :(得分:2)
Afaik你可以用两种方式做到这一点:
在OleDBCommand中编写一个简单的SQL选择。目前,您正在选择Excel中的所有行。 可能是您从文档中删除了200行没有帮助,因为它仍然选择那些空行。
样品:
select * from [Sheet1$] WHERE ID <= 200
将您的整个数据加载到 DataTable 并以编程方式处理此问题。
样品:
DataTable xlsData = new DataTable();
List<string> result = new List<string>();
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);
}
答案 1 :(得分:0)
尝试 从[Sheet1 $]
中选择DISTINCT *