用vbs读取Excel文件的函数代码
来源: 阅读:1606 次 日期:2016-07-05 14:37:49
温馨提示: 小编为您整理了“用vbs读取Excel文件的函数代码”,方便广大网友查阅!

用vbs读取Excel文件的函数代码,不需要安装execl,需要的朋友可以参考下。

核心代码

代码如下:

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

' http://www.robvanderwoude.com

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

更多信息请查看脚本栏目
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!

2025国考·省考课程试听报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map