从html中读取并写入Excel

时间:2013-03-15 21:34:43

标签: html excel vbscript

我想读取html并将其中的几列写入Excel表格。我目前正在使用宏来执行此操作,但需要在VBScript中使用。

我想计算合规性检查和oracle表的失败发生次数,并将其写入Excel文档。

Full size image示例html和所需的Excel文件结果。

Sample html and desired excel output

2 个答案:

答案 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文件?如何计算或存储值?

也许发布你到目前为止的脚本,并具体说明什么不起作用。