デルファイでHTMLテーブルのデータをどう取得するのですか?

HTMLテーブルからデータを取得するには、DelphiのTWebBrowserコンポーネントを使用できます。

まず、DelphiのフォームにTWebBrowserコンポーネントを配置し、そのAlignプロパティをalClientに設定します。これにより、フォーム全体に敷き詰められます。

そして、コード内でTWebBrowserのNavigateメソッドを使い、HTMLファイルまたはURLを読み込んでいきます。

procedure TForm1.FormCreate(Sender: TObject);
begin
  WebBrowser1.Navigate('http://www.example.com/table.html');
end;

続いて、WebBrowserのDocumentCompletedイベントでは、TWebBrowserのDocumentプロパティを利用してHTMLドキュメントオブジェクトを取得し、そのインターフェースでテーブルデータをー取得します。

HTML中のテーブルがID属性”myTable”を有する場合、以下のコードを使用してテーブルのデータを抽出できます:

procedure TForm1.WebBrowser1DocumentCompleted(Sender: TObject; const pDisp: IDispatch; const URL: OleVariant);
var
  HTMLDoc: IHTMLDocument2;
  Table: IHTMLElement;
  Rows: IHTMLElementCollection;
  Row: IHTMLElement;
  Cell: IHTMLElement;
  i, j: Integer;
begin
  HTMLDoc := WebBrowser1.Document as IHTMLDocument2;
  Table := HTMLDoc.getElementById('myTable') as IHTMLElement;
  Rows := Table.getElementsByTagName('tr') as IHTMLElementCollection;

  for i := 0 to Rows.length - 1 do
  begin
    Row := Rows.item(i, EmptyParam) as IHTMLElement;
    for j := 0 to Row.cells.length - 1 do
    begin
      Cell := Row.cells.item(j, EmptyParam) as IHTMLElement;
      ShowMessage(Cell.innerText);
    end;
  end;
end;

上記コードでは、表内の各行と各列が順番に回り、ShowMessage関数を使って各セルの内容を表示します。あとは、ご自身のニーズに合わせて、さらなる処理を加えてください。

bannerAds