Vb.net 在oledb select语句中使用excel范围

Vb.net 在oledb select语句中使用excel范围,vb.net,excel,datagridview,oledb,Vb.net,Excel,Datagridview,Oledb,在VB.net中,我使用oledb将较大excel电子表格的一列读取到数据网格中。用于读取整个工作表的常规select语句如下所示: da2 = New OleDbDataAdapter("select * from [sheet3$]", cn) 要从较大的工作表中读取单个列,此操作有效: da2 = New OleDbDataAdapter("select * from [sheet3$A:A" & lastrow & "]", cn) 'this reads the en

在VB.net中,我使用oledb将较大excel电子表格的一列读取到数据网格中。用于读取整个工作表的常规select语句如下所示:

da2 = New OleDbDataAdapter("select * from [sheet3$]", cn)
要从较大的工作表中读取单个列,此操作有效:

da2 = New OleDbDataAdapter("select * from [sheet3$A:A" & lastrow & "]", cn) 'this reads the entire column A down to the integer value in the variable 'lastrow'
现在,我的目标是通过循环逐列读取整个工作表,方法是将工作表引用转换为字符串,或者让vb.net连接/转换一个字符串和它不会转换的范围。我已经尝试过这些选项,但迄今为止没有成功:

For colindex = 2 To lastcol3
colrange = xlWsheet3.Range(xlWsheet3.Cells(toprow, colindex), xlWsheet3.Cells(lastrow3.colindex)
addy = colrange.Address
da2 = New OleDbDataAdapter("select * from [sheet3$" & addy & "]", cn)

不管我怎么做,oledb适配器总是无法将字符串与excel.range进行协调。有没有更简单的方法通过循环从excel中读取单个列?我是编程新手,所以任何建议都会很有帮助。

我放弃了oledb逐列循环,而是直接使用excel.interop循环,通过以下帖子:

我不认为oledb是用于非常详细/复杂的阅读