我想读取html并将其中的几列写入Excel表格。我目前正在使用宏来执行此操作,但需要在VBScript中使用。
我想计算合规性检查和oracle表的失败发生次数,并将其写入Excel文档。
Full size image示例html和所需的Excel文件结果。
答案 0 :(得分:3)
可以从VBScript控制Excel,如下所示:
Set xl = CreateObject("Excel.Application")
xl.Visible = True
Set wb = xl.Workbooks.Add
HTML文件可以解析为DOM文档:
Set doc = CreateObject("Msxml2.DOMDocument.6.0")
doc.async = True
doc.load "C:\path\to\your.html"
使用XPath表达式选择al <td>
元素:
Set td = doc.selectNodes("//tr/td")
此时td
包含文档中所有<td>
元素的集合。您可以像这样处理它们:
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
以上将创建一个这样的表:
2/9/2012 1
2/9/2012 1
2/9/2012 1
.
.
.
然后,您可以使用Excel的Consolidate
方法合并数据:
Const xlSum = -4157
wb.Sheets(2).Range("A1").Consolidate _
Array(wb.Sheets(1).Name & "!R1C1:R" & row & "C3"), xlSum
答案 1 :(得分:0)
您可以使用任何dom库来读取html和OpenXML sdk以写入Excel(2007格式 - xlsx)。这是回答你的问题,还是你有特定的东西在努力?
修改
抱歉,我认为你出于某种原因谈论在VB.Net中这样做,现在我意识到你已经在Excel中了。所以我不清楚你在问什么 - 如何打开html文件?如何计算或存储值?
也许发布你到目前为止的脚本,并具体说明什么不起作用。