用vbs读取Excel文件的函数代码
作者 佚名
来源 ASP编程
浏览
发布时间 2013-07-09
核心代码 复制代码 代码如下: 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 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: vbs向指定的文件添加内容的函数下一篇: VBS打开选择文件对话框代码(Win7)
关于用vbs读取Excel文件的函数代码的所有评论