WSH で JScript を使用して、.xls ファイルからいくつかのセル値を読み取る必要があります。
それを行うために使用できるCOMオブジェクトまたは何かはありますか?
WSH で JScript を使用して、.xls ファイルからいくつかのセル値を読み取る必要があります。
それを行うために使用できるCOMオブジェクトまたは何かはありますか?
実際、これには 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 です!それは素晴らしいですね) です。
ADO を使用して値を読み取ることができます...
%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