使用 OLEDB 连接选择 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())
{
}
Is there any way to select the Excel sheet used range via OLEDB Command object?
Because I have an Excel file that has 400 rows, but when I delete 200 rows and try to select the sheet again, it's selecting up to 400 rows again instead of selecting the 200 rows. This is the code which I've written to select the sheet:
oledbConn = new OleDbConnection(connectionString);
oledbCmd = new OleDbCommand("select * from [Sheet1$]", oledbConn);
oledbConn.Open();
oledbDr = oledbCmd.ExecuteReader();
while(oledbDr.Read())
{
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Afaik,你可以通过两种方式做到这一点:
第一。
在 OleDBCommand 中编写一个简单的 SQL 选择。此时您正在选择 Excel 中的所有行。
也许您从文档中删除了 200 行这一事实并没有帮助,因为它仍然选择那些空行。
示例:
第二。
将整个数据加载到DataTable并以编程方式处理此数据。
示例:
Afaik you can do this in two ways:
First.
Write a simple SQL select in OleDBCommand. At the moment you are selecting all rows in the excel.
Probably the fact that you deleted 200 rows from the document does not help since it still selects those empty rows.
Sample:
Second.
Load your entire data to DataTable and work on this programatically.
Sample:
尝试
从 [Sheet1$] 中选择 DISTINCT *
Try
select DISTINCT * from [Sheet1$]