读取excel数据的问题。

programfish 2008-07-15 08:38:19
请教如何读取excel文件整行的内容,先判断总共有多少行,然后把每行的数据读入数组,每行的数据个数都不同。如下图的读取每行的数据到数组。
...全文
78 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
tim_zhang 2008-07-15
  • 打赏
  • 举报
回复
先要找到判断依据啊 比如说根据是否有多行为空时就不继续寻找
datou985 2008-07-15
  • 打赏
  • 举报
回复
如果数据量不大的话,就一个CELL一个CELL 的去读吧
如果数据量比较大,就先读到RecordSet里面,然后访问RecordSet


'打开excel文件
Public Sub openExcel(ByVal strName As String)
If blnOpenStatus Then
closeExcel
End If
Set xlsApp = CreateObject("Excel.Application")
Set xlsBook = xlsApp.Workbooks.Open(strName)
Set xlsSheet = xlsBook.ActiveSheet
blnOpenStatus = True
End Sub

'关闭excel文件
Public Sub closeExcel()
If blnOpenStatus Then
blnOpenStatus = False
xlsBook.Close
xlsApp.Quit
Set xlsApp = Nothing
Set xlsBook = Nothing
Set xlsSheet = Nothing
End If
End Sub

'取得excel文件的记录集
Public Function GetExcelRs(ByVal strName As String) As ADODB.Recordset
Dim Rs As ADODB.Recordset
Dim rsTemp As Object
Dim i As Long
Set Rs = New ADODB.Recordset
Dim conn As String
Rs.CursorLocation = adUseClient
Rs.CursorType = adOpenDynamic
Rs.LockType = adLockBatchOptimistic
conn = "data provider=msdasql.1;driver=microsoft excel driver (*.xls);dbq=" & strName
Rs.Open "SELECT * FROM [sheet1$]", conn

conn = "select * from OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=YES;IMEX=1;database=" & strName & ";','select * from [Sheet1$]')"
Set rsTemp = ExecSQL(conn)
Rs.MoveFirst
rsTemp.MoveFirst

For i = 1 To Rs.RecordCount
Rs.Fields(1).Value = rsTemp.Fields(1).Value
Rs.MoveNext
rsTemp.MoveNext
Next
Set GetExcelRs = Rs
Set Rs = Nothing
Set rsTemp = Nothing
End Function


如果是SQL2005,还得把OpenRowSet的控制给打开
programfish 2008-07-15
  • 打赏
  • 举报
回复
问题没问清楚,是先根据前面的60,80等行读取其后的X,Y行的内容。

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧