1

HTML を読み取り、そこからいくつかの列を Excel テーブルに書き込みたいと考えています。現在、マクロを使用してそれを実行していますが、VBScript でそれが必要です。

コンプライアンスチェックとオラクルテーブルの失敗回数を数えてExcelドキュメントに書き出したい。

サンプル HTML のフルサイズの画像と目的の Excel ファイルの結果。

サンプルの HTML と目的の Excel 出力

4

2 に答える 2

3

Excel は、次のように VBScript から制御できます。

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 に答える