用vbs读取Excel文件的函数代码,不需要安装execl,需要的朋友可以参考下。
核心代码
| Function ReadExcel( myXlsFile, mySheet, my1stCell, myLastCell, blnHeader ) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Dim arrData( ), i, j | | Dim objExcel, objRS | | Dim strHeader, strRange | | | | Const adOpenForwardOnly = 0 | | Const adOpenKeyset = 1 | | Const adOpenDynamic = 2 | | Const adOpenStatic = 3 | | | | | | If blnHeader Then | | strHeader = "HDR=YES;" | | Else | | strHeader = "HDR=NO;" | | End If | | | | | | Set objExcel = CreateObject( "ADODB.Connection" ) | | | | objExcel.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _ | | myXlsFile & ";Extended Properties=""Excel 8.0;IMEX=1;" & _ | | strHeader & """" | | | | | | Set objRS = CreateObject( "ADODB.Recordset" ) | | strRange = mySheet & "$" & my1stCell & ":" & myLastCell | | objRS.Open "Select * from [" & strRange & "]", objExcel, adOpenStatic | | | | | | i = 0 | | Do Until objRS.EOF | | | | If IsNull( objRS.Fields(0).Value ) Or Trim( objRS.Fields(0).Value ) = "" Then Exit Do | | | | ReDim Preserve arrData( objRS.Fields.Count - 1, i ) | | | | | | For j = 0 To objRS.Fields.Count - 1 | | If IsNull( objRS.Fields(j).Value ) Then | | arrData( j, i ) = "" | | Else | | arrData( j, i ) = Trim( objRS.Fields(j).Value ) | | End If | | Next | | | | objRS.MoveNext | | | | i = i + 1 | | Loop | | | | | | objRS.Close | | objExcel.Close | | Set objRS = Nothing | | Set objExcel = Nothing | | | | | | ReadExcel = arrData | | End FunctionCOPY |
使用方法:
| Option Explicit | | | | Dim arrSheet, intCount | | | | | | arrSheet = ReadExcel( "ReadExcelTest.xls", "Sheet1", "A1", "B6", True ) | | For intCount = 0 To UBound( arrSheet, 2 ) | | WScript.Echo arrSheet( 0, intCount ) & vbTab & arrSheet( 1, intCount ) | | Next | | | | WScript.Echo "===============" | | | | | | arrSheet = ReadExcel( "ReadExcelTest.xls", "Sheet1", "A2", "B6", False ) | | For intCount = 0 To UBound( arrSheet, 2 ) | | WScript.Echo arrSheet( 0, intCount ) & vbTab & arrSheet( 1, intCount ) | | NextCOPY |
转自:http://www.robvanderwoude.com |