从html读取并写入Excel

我想读取HTML,并从它写入几个列到Excel表格。我目前正在使用一个macros来做到这一点,但在VBScript中需要它。

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

示例html和所需Excel文件结果的全尺寸图像 。

示例html和所需的excel输出

Excel可以像这样从VBScript控制:

Set xl = CreateObject("Excel.Application") xl.Visible = True Set wb = xl.Workbooks.Add 

HTML文件可以被parsing成一个DOM文档:

 Set doc = CreateObject("Msxml2.DOMDocument.6.0") doc.async = True doc.load "C:\path\to\your.html" 

使用XPathexpression式来selectal <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 

以上将创build一个如下所示的表格:

 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 

您可以使用任何dom库来读取html和OpenXML sdk来写出Excel(2007格式 – xlsx)。 这是回答你的问题,还是你有什么具体的事情你正在努力?


编辑

对不起,我想出于某种原因你正在讨论在VB.Net中做这件事,现在我意识到你已经在Excel中了。 所以我不清楚你在问什么 – 如何打开HTML文件? 如何计算或存储值?

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