700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > html调用vbs读取excel 用vbs读取Excel文件的函数代码

html调用vbs读取excel 用vbs读取Excel文件的函数代码

时间:2020-11-02 02:17:36

相关推荐

html调用vbs读取excel 用vbs读取Excel文件的函数代码

核心代码

Function ReadExcel( myXlsFile, mySheet, my1stCell, myLastCell, blnHeader )

' Function : ReadExcel

' Version : 2.00

' This function reads data from an Excel sheet without using MS-Office

'

' Arguments:

' myXlsFile [string] The path and file name of the Excel file

' mySheet [string] The name of the worksheet used (e.g. "Sheet1")

' my1stCell [string] The index of the first cell to be read (e.g. "A1")

' myLastCell [string] The index of the last cell to be read (e.g. "D100")

' blnHeader [boolean] True if the first row in the sheet is a header

'

' Returns:

' The values read from the Excel sheet are returned in a two-dimensional

' array; the first dimension holds the columns, the second dimension holds

' the rows read from the Excel sheet.

'

' Written by Rob van der Woude

'

Dim arrData( ), i, j

Dim objExcel, objRS

Dim strHeader, strRange

Const adOpenForwardOnly = 0

Const adOpenKeyset = 1

Const adOpenDynamic = 2

Const adOpenStatic = 3

' Define header parameter string for Excel object

If blnHeader Then

strHeader = "HDR=YES;"

Else

strHeader = "HDR=NO;"

End If

' Open the object for the Excel file

Set objExcel = CreateObject( "ADODB.Connection" )

' IMEX=1 includes cell content of any format; tip by Thomas Willig

objExcel.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _

myXlsFile & ";Extended Properties=""Excel 8.0;IMEX=1;" & _

strHeader & """"

' Open a recordset object for the sheet and range

Set objRS = CreateObject( "ADODB.Recordset" )

strRange = mySheet & "$" & my1stCell & ":" & myLastCell

objRS.Open "Select * from [" & strRange & "]", objExcel, adOpenStatic

' Read the data from the Excel sheet

i = 0

Do Until objRS.EOF

' Stop reading when an empty row is encountered in the Excel sheet

If IsNull( objRS.Fields(0).Value ) Or Trim( objRS.Fields(0).Value ) = "" Then Exit Do

' Add a new row to the output array

ReDim Preserve arrData( objRS.Fields.Count - 1, i )

' Copy the Excel sheet's row values to the array "row"

' IsNull test credits: Adriaan Westra

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

' Move to the next row

objRS.MoveNext

' Increment the array "row" number

i = i + 1

Loop

' Close the file and release the objects

objRS.Close

objExcel.Close

Set objRS = Nothing

Set objExcel = Nothing

' Return the results

ReadExcel = arrData

End Function

使用方法:

Option Explicit

Dim arrSheet, intCount

' Read and display columns A,B, rows 2..6 of "ReadExcelTest.xls"

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 "==============="

' An alternative way to get the same results

arrSheet = ReadExcel( "ReadExcelTest.xls", "Sheet1", "A2", "B6", False )

For intCount = 0 To UBound( arrSheet, 2 )

WScript.Echo arrSheet( 0, intCount ) & vbTab & arrSheet( 1, intCount )

Next

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。