区切り文字は形式の一部
CSV は通常、フィールドをカンマで区切り、TSV はタブ文字で区切ります。フィールド自体にカンマ、タブ、引用符、改行が含まれると、単純な置換では正しく変換できません。RFC 4180 に示される一般的な CSV 形式では、カンマを含むフィールドを二重引用符で囲み、その中の二重引用符は二つ重ねて表します。TSV の細かな扱いはプログラムごとに異なるため、受け取り側の仕様も確認してください。MultiVerto の変換器は表をセルとして解析してから指定された区切り文字で書き出します。元のテキストの句読点を一律に置き換える処理ではありません。行ごとのセル数が同じであることも求めます。
引用符付きのフィールドを正しく読む
2 行の CSV 入力 item,note と ペン,"赤, 青" を試します。引用符で囲まれた note の中のカンマはデータであり、3 列目の区切りではありません。CSV から TSV に変換すると、item と note、ペンと「赤, 青」の間はそれぞれタブで区切られます。note 内のカンマは文字として残ります。TSV ではカンマは区切り記号でないため、この例の出力では値を囲む引用符を省けます。フィールドにタブや改行が含まれるなら、TSV 側でも引用符が必要です。タブと空白は画面で似て見えるので、タブを可視化できるテキストエディターで確認してください。
- CSV: ペン,"赤, 青"
- 2 セルとして解析:ペン | 赤, 青
- TSV:ペン [タブ] 赤, 青
受け取り側のアプリを確認する
相手がカンマ区切りと文書化された引用符の規則を明示しているなら、CSV を使います。データにカンマが多い場合は、引用符が必要なセルを減らせる TSV が便利なこともありますが、セル内のタブには引き続き注意が必要です。送り先が単純な表でなく構造化された値を受け取るなら、CSV から JSON に変換して名前付きフィールドとしてレコードを確認できます。JSON が型を保てるかどうかは、値をどう解析するかという手順の取り決め次第であり、表形式の取り込みでは全セルが文字列になることがあります。表計算ソフトは、先頭のゼロ、大きな識別子、日付に見える文字列を読み込み時に変更し得ます。区切り文字の変換だけでは防げないため、取り込み設定を確認し、元データと少量の例を比べてください。
表計算ソフトの数式と危険なセルに注意する
CSV や TSV はデータの形式ですが、表計算ソフトは数式に見える文字で始まるセルを数式として解釈する場合があります。他人が入力した値を含む書き出しファイルでは、これは区切り文字とは別の安全上の問題です。この変換器は区切り文字と引用符の扱いを変えますが、表計算ソフト向けにセルを無害化したり、ダウンロードしたファイルの安全性を保証したりはしません。受け取り側の表計算ソフトの取り込み設定と、アプリの書き出し方針を確認してください。カンマをタブに替えても、危険な先頭文字は消えません。機密データでは、どのツールで開き、すべてのセルを文字列として保持できるかも確かめます。
往復変換でセルと型を確かめる
まず元のファイルを保管してください。代表的な CSV の一部を TSV に変換し、さらに TSV から CSV に戻して、元と変換後の解析済みセルを比較します。引用符の付け方や改行コードが無害に変わる場合があるため、バイト列の完全一致だけを判定基準にしません。ヘッダー、行数、空のセル、セル内の区切り文字や改行を確認します。続けて JSON へ変える場合は、先頭行がキーになったか、数値に見える文字列が必要に応じて文字列のままかを確かめてください。口座コードの先頭のゼロはデータであり、丸める数字ではありません。埋め込み変換器で小さな例を試してから、同じ難しい行を受け取り側のアプリで検証し、最後に表全体へ適用します。