在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以连接/转换字符串和范围(它赢得了' T)。我尝试过这些选项,到目前为止还没有成功:
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读取单个列?我是编程新手,所以任何建议都会有所帮助。
答案 0 :(得分:0)
我已经抛弃了oledb逐列循环,而是通过这篇文章直接使用了一个直接的excel.interop循环:
Filling DataGrid Columns w/ Excel Data in VB
我认为oledb不是为了非常详细/复杂的阅读......