1

我需要在 WSH 下使用 JScript 从 .xls 文件中读取一些单元格值。

是否有任何 COM 对象或任何我可以用来执行此操作的对象?

4

3 回答 3

5

实际上有一个 COM 组件。它的 progId 是“Excel.Application”,你可以这样使用它:

var XLS = WScript.CreateObject("Excel.Application") ;
XLS.Workbooks.open(xlsFile) ;
var cellValue = XLS.Cells(row,col).Value ;

就是这样。就如此容易。该变量cellValue现在将值保存在单元格 ( row, col) 中。
如果这还不够好,xlsFile可能是文件或 URL 的路径(是的,一个 URL!,不是很好)。

于 2011-04-05T22:05:12.297 回答
1

您可以使用 ADO 来读取值...

http://technet.microsoft.com/en-us/library/ee692882.aspx

于 2011-04-05T02:19:54.533 回答
0

%windir%\SysWOW64\cscript.exe ExcelSheetName.vbs

ExcelSheetName.vbs:

Const ArrSize = 100

Dim ArrSheetName()

ReDim ArrSheetName(ArrSize)

IndexArr = 0



Dim ExcelFileName

ExcelFileName = "D:\1\ExcelSrc.xls"


Dim ADOCatalog, ADOTable, ADODBConnection

Set ADOCatalog      = Createobject("ADOX.Catalog")

Set ADOTable        = Createobject("ADOX.Table")

Set ADODBConnection = CreateObject("ADODB.Connection")


Dim strConnString, strSheetName

strConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ExcelFileName & ";Extended Properties=Excel 8.0;"


ADODBConnection.Open strConnString

Set ADOCatalog.ActiveConnection = ADODBConnection


For Each ADOTable In ADOCatalog.Tables

    strSheetName = ADOTable.Name

    strSheetName = Replace(strSheetName, "'", "")

    strSheetName = Left(strSheetName, InStr(1, strSheetName, "$", 1) - 1)

    'Wscript.Echo strSheetName

    ArrSheetName(IndexArr)=strSheetName

    IndexArr=IndexArr+1

Next

ReDim Preserve ArrSheetName(IndexArr-1)

ADODBConnection.Close

Set ADOCatalog      = Nothing

Set ADOTable        = Nothing

Set ADODBConnection = Nothing


For Each ArrValue in ArrSheetName

    Wscript.Echo ArrValue

Next
于 2012-12-31T04:02:48.413 回答