HTMLテーブル→CSV変換
HTMLの `
| HTMLの1行 | <tr><td>name</td><td>age</td><td>city</td></tr> |
|---|---|
| 変換後のCSV記法 | name,age,city |
`` 内の行、または最初の行が ` ブラウザで表の範囲を選択してコピーすると、クリップボードには見た目上の文字列だけでなく、裏側でHTML形式のデータも同時に格納されている。これはOSのクリップボードが「マルチフォーマット」に対応しているためで、コピー元のアプリケーションが複数の表現形式(プレーンテキスト・HTML・リッチテキスト等)を同時に書き込み、貼り付け先のアプリケーションが最も都合の良い形式を選んで受け取れる仕組みになっている。 Excelやスプレッドシートに他サイトの表をそのまま貼り付けると、書式やリンクまで含めて再現されることがあるのはこの仕組みのおかげである。一方で、貼り付け先が単純なテキストエディタやCSVファイルの場合、この裏側のHTML情報は活用されずプレーンテキストとして扱われてしまい、表組みの構造(どのセルがどの列に属するか)が失われがちだった。 HTMLテーブル→CSV変換のようなツールは、まさにこの「失われがちな構造情報」を明示的に復元する役割を担っている。ブラウザの表コピー機能が持つHTML構造をそのまま活かし、スプレッドシートで正しく列分けされたデータとして再利用できるようにする、実務上地味だが確実に需要のあるジャンルである。` のみで構成される場合は見出し行として認識され、それ以外の各 ` ` はデータ行としてCSVの1行に変換されます。
使い方のヒント
` であれば見出し行として自動認識します。
` 等の装飾タグは自動的に取り除かれ、テキスト内容のみがCSVに変換されます。よくある質問
` タグを含む範囲をコピーして貼り付けてください。
` のセルがすべて ` ` であれば見出し行として扱われます。それにも該当しない場合は、全ての行がデータ行としてそのまま変換されます。
` タグのみが変換対象になります。複数の表を変換したい場合は、それぞれのテーブルのHTMLを個別に貼り付けて変換してください。
余談ですが ― ブラウザの「表コピー」はなぜHTMLを含むのか