CSV・HTMLテーブル変換ツール|CSVとHTML表を相互変換

CSV・表データツール
変換方向

データを入力し、変換方向を選んで「変換する」を押してください。

このツールでできること

CSVをHTMLのtableコードへ、またはHTMLテーブルをCSVへ変換できます。変換結果はプレビューとして描画せず、コピーできる文字列として表示します。

使い方

  1. CSVまたはHTMLテーブルを入力します。
  2. 変換方向を選びます。
  3. CSVから変換する場合は、必要に応じて「先頭行を見出し行にする」を切り替えます。
  4. 「変換する」を押します。
  5. 結果を確認し、「結果をコピー」を押します。

入力、変換方向、見出し行の設定を変更すると、変更前の結果は消去されます。HTMLからCSVへ変換する間は、見出し行の設定を使用しません。

入力例・出力例

「先頭行を見出し行にする」を有効にして、次のCSVを入力します。

name,note
山田,"東京,大阪"
佐藤,"<strong>確認</strong> & &amp;"

次のHTMLコードを生成します。

<table>
  <thead>
    <tr>
      <th scope="col">name</th>
      <th scope="col">note</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>山田</td>
      <td>東京,大阪</td>
    </tr>
    <tr>
      <td>佐藤</td>
      <td>&lt;strong&gt;確認&lt;/strong&gt; &amp; &amp;amp;</td>
    </tr>
  </tbody>
</table>

反対に、次のHTMLテーブルを入力します。

<table>
  <tr><th>name</th><th>note</th></tr>
  <tr><td>山田</td><td><strong>東京</strong><br>大阪 &amp; 京都</td></tr>
</table>

セル内の装飾タグを除き、brを実際の改行へ変換した次のCSVを出力します。

name,note
山田,"東京
大阪 & 京都"

よくある利用場面

  • CSVからWebページへ貼るHTMLテーブルコードを作るとき
  • HTML表の内容をCSVとして表計算ソフトへ移すとき
  • セル内のHTML風文字列をタグとして実行せず、HTMLコードへ含めたいとき

処理仕様

CSVの解析

区切り文字はカンマです。LF・CRLF・CRの改行、空セル、空行、列数が異なる行、引用符で囲んだカンマや改行、二重化した引用符に対応します。入力先頭のBOMは1個だけ除去します。末尾の改行は新しい空行として追加しませんが、末尾に空行が複数ある場合は、その途中までを空行として保持します。

引用符はセルの先頭でだけ開始できます。閉じ引用符の後には、カンマ、改行、または入力末尾だけを置けます。閉じていない引用符などを検出した場合は、該当する物理行の付近をエラーとして示し、途中までの結果は出力しません。

ファイルの読み込み、文字コード変換、タブや任意の区切り文字の指定には対応していません。Shift_JISなどのCSVは、あらかじめブラウザへ正しく入力できる文字列へ変換してください。

CSVからHTMLへの変換

見出し行を有効にすると、先頭行をthead内のth scope="col"にし、残りの行をtbody内のtdにします。無効にすると、すべての行をtbody内のtdにします。インデントは半角スペース2個単位、出力改行はLFです。見出し行だけの入力ではtbodyを生成しません。

各セルの&、<、>をHTMLテキスト用に1回エスケープします。入力済みのエンティティを先に復号しないため、文字列&amp;は&amp;amp;になります。引用符は要素の属性ではなく本文へ置くため、そのまま保持します。結果はHTMLプレビューとして画面へ挿入せず、コード文字列として出力します。

HTMLからCSVへの変換

ブラウザのHTML解析機能で入力を解析し、文書または断片内にある1個のtableを対象にします。そのテーブル自身に属するtrを文書順に読み、各行の直接の子であるthとtdだけをセルとして扱います。

セル内ではテキストを保持し、brをLFへ変換します。その他の要素は中のテキストだけを取り出し、タグ、属性、コメントはCSVへ残りません。&amp;などのHTMLエンティティはHTML解析後の文字へ戻ります。セル内の先頭・末尾や連続する空白は自動調整しませんが、省略した閉じタグなどはブラウザのHTML解析によって補正される場合があります。

カンマ、引用符、CR、LFを含むセルだけを引用符で囲み、セル内の引用符は二重化します。レコード間の改行はLFです。元のthとtdの違いや、thead・tbodyなどの構造はCSVには残りません。

対応していないHTML

tableがない入力、複数または入れ子のtable、行がない表、直接のthまたはtdがない行、結合セルはエラーになります。rowspanとcolspanは、省略されているか、数値として1の場合だけ通常セルとして扱います。

外部参照や実行につながる要素(script、img、iframe、styleなど)と属性(src、href、styleなど)は解析対象外として拒否します。一方、セルのテキストに含まれる単なるsrc=やhref=は属性ではないため保持します。解析した文書を画面へ挿入しないので、イベント属性を含む入力も実行せず、属性自体はCSVへ出力しません。

入力データについて

変換はブラウザ内で完結し、外部ライブラリ、外部通信、サーバー保存、ブラウザ内の永続保存を使用しません。「結果をコピー」を押したときだけ、表示中の結果をクリップボードへ書き込みます。