在oledb select语句中使用excel范围



在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循环,通过这篇文章:

在VB 中用Excel数据填充DataGrid列

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

最新更新