I want read html and write few columns from it into an Excel table.I am currently using a macro to do it, but need it in VBScript.
I want to count the number of fail occurrences for compliance check and oracle table and write it into an Excel doc.
Full size image of sample html and desired Excel file result.
Excel can be controlled from VBScript like this:
Set xl = CreateObject("Excel.Application") xl.Visible = True Set wb = xl.Workbooks.Add
The HTML file could be parsed into a DOM document:
Set doc = CreateObject("Msxml2.DOMDocument.6.0") doc.async = True doc.load "C:\path\to\your.html"
Use an XPath expression to select al
Set td = doc.selectNodes("//tr/td")
At this point
td contains a collection of all
<td> elements in the document. You can process them like this:
numrows = doc.selectNodes("//tr").Length numcols = td.Length / numrows row = 0 For i = 0 To td.Length - 1 Step numcols If td(i).Text = "Fail" Then row = row + 1 wb.Sheets(1).Cells(row, 1).Value = CDate(Split(td(i+2).Text)(0)) If InStr(td(i+1).Text, "compliance") > 0 Then wb.Sheets(1).Cells(row, 2).Value = 1 ElseIf InStr(td(i+1).Text, "Oracletable") > 0 Then wb.Sheets(1).Cells(row, 3).Value = 1 End If End If Next
The above will create a table like this:
2/9/2012 1 2/9/2012 1 2/9/2012 1 . . .
You can then use Excel’s
Consolidate method to consolidate the data:
Const xlSum = -4157 wb.Sheets(2).Range("A1").Consolidate _ Array(wb.Sheets(1).Name & "!R1C1:R" & row & "C3"), xlSum
You can use any dom library to read in the html and the OpenXML sdk to write out to Excel (2007 format – xlsx). Does that answer your question or do you have something specific you are struggling with?
Sorry, I thought for some reason you were talking about doing it in VB.Net, now I realize you are already in Excel. So I’m not clear on what you are asking – how to open the html file? how to calculate or store the values?
Perhaps post the script you have so far and be specific on what is not working.