区切り文字ファイル変換ツール

ヨーロッパのデータはセミコロン区切りで出力されることが多く(カンマが小数点記号として使われるため)、旧来のデータウェアハウスはタブ区切り、Unixのログはパイプ区切りを好み、それ以外はほとんどがCSVです。誤った区切り形式を間違ったツールに貼り付けると、インポート処理が思わぬ形で失敗します。この変換ツールは、引用符で囲まれたフィールドを1つの単位として読み取るため、フィールド内の変換元区切り文字も安全に切り替えられます。

区切り文字を変換する方法

  1. 1

    テキストを貼り付ける

    CSV、TSV、SSV、PSVのテキストをエディターに貼り付けます。このツールは貼り付けたテキストを処理するもので、アップロードされたファイルには対応していません。

  2. 2

    変換元と変換先の区切り文字を選ぶ

    両側について、カンマ、タブ、セミコロン、パイプ、または任意のカスタム文字を選択します。既定の変換元はカンマ、既定の変換先はタブです。

  3. 3

    変換する

    変換を実行すると、変換先の区切り文字に置き換えられた結果が下に表示されます。

  4. 4

    結果をコピーする

    変換後のテキストをコピーして、スプレッドシート、データベース、またはスクリプトに貼り付けます。

よく出会う4つの区切り文字

形式 区切り文字 よく使われる場面
CSV カンマ 米国のスプレッドシートや大半のWebエクスポートの標準
TSV タブ 学術データセット、データウェアハウスの抽出、Google Sheetsからの貼り付け
SSV セミコロン ヨーロッパ式Excel(カンマが小数点)、SAPの出力
PSV パイプ Unixログのパイプライン、金融データフィード、古いメインフレームのダンプ

引用符の扱い方

RFC 4180は、ほぼすべてのツールで使われている一般的なCSVの引用符ルールを定めています。

  1. 区切り文字、改行、または引用符を含むフィールドは、二重引用符で囲む必要があります。
  2. 引用符で囲まれたフィールド内では、リテラルの二重引用符を2つ重ねてエスケープします: "彼女は""こんにちは""と言った"
  3. 引用符で囲まれていないフィールドでは、先頭と末尾の空白がそのまま保持されます。

この変換ツールは、引用符で囲まれたフィールドを1つの単位として読み取るため、フィールド内の変換元区切り文字によって行が分割されることはありません。出力ではフィールドを変換先の区切り文字でつなぎ合わせますが、引用符は付け直しません。そのため、変換先の区切り文字を含むフィールドは余分な列になります。変換前にそのようなフィールドを確認し、引用符で囲んでください。

知っておきたい制限: 各行は個別に変換されるため、複数行にまたがる引用符付きフィールドは複数の行に分割されます。

よくある落とし穴

  • ヨーロッパ式小数点のカンマ。 セミコロン区切りのユーロデータで「1,50」という価格フィールドは、先に小数点記号を置き換えずにカンマ区切りへ変換すると、「1」と「50」に分かれてしまいます。
  • CRLFとLF。 出力の改行コードは常にLFです。受け取り側のシステムがCRLFを必要とする場合(Windows版Excelなど)は、この手順の後に改行コードを変換してください。
  • UTF-8のBOM。 ExcelがUTF-8のCSVを正しく開くにはバイトオーダーマーク(BOM)が必要です。このツールはBOMを追加も削除もしないため、必要に応じてエディターで処理してください。
  • 末尾の空の列。 区切り文字で終わるファイルには、最後に空の列ができます。これを削除するパーサーもあれば保持するパーサーもあるため、いずれの場合も確認してください。

ヒント

  • カンマを含む可能性があるデータにはTSVを使いましょう。実際のコンテンツにタブが含まれることはめったにありません。
  • 迷ったときは、変換元を引用符で囲んだままにしましょう。変換元の区切り文字を含んでいても、引用符付きフィールドはきれいに変換されます。
  • 既定の「カンマからタブ」の組み合わせで、CSVからTSVへの変換のほとんどを1ステップで行えます。

よくある質問

いいえ。フィールド内のカンマが二重引用符で囲まれていれば問題ありません。変換ツールは引用符付きフィールドを1つの単位として読み取るため、変換先の区切り文字で行をつなげても、埋め込まれたカンマは保持されます。注意点: 変換先の区切り文字を含むフィールドは出力で引用符が付かず、余分な列に分割されます。

Windows版Excelは既定でCRLFを書き込みます。Pythonは、newline=''フラグを付けてファイルをバイナリモードで開かない限りLFを書き込みます。この変換ツールの出力は常にLFのため、受け取り側がCRLFを期待している場合は後で改行コードを変換してください。

貼り付けたテキストは1回のリクエストで処理されるため、実質的な上限はブラウザとサーバーが1回のリクエストで受け入れる量です。非常に大きなファイルは、分割して変換してください。

はい。貼り付けたテキストは変換を実行するためにサーバーに送信されます。保存はされず、ページのリンクに追加されることもありません。

関連ツール

このツールは他の言語でも利用できます