1

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

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

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

示例 html 和所需的 excel 输出

4

2 回答 2

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表达式选择所有<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
于 2013-03-16T00:26:51.767 回答
0

您可以使用任何dom库读取 html 和OpenXML sdk以写入 Excel(2007 格式 - xlsx)。这是否回答了您的问题,或者您是否有特定的问题正在努力解决?


编辑

抱歉,出于某种原因,我以为您正在谈论在 VB.Net 中执行此操作,现在我意识到您已经在 Excel 中了。所以我不清楚你在问什么 - 如何打开 html 文件?如何计算或存储值?

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

于 2013-03-15T21:44:52.247 回答