CSV ファイルを開くか貼り付けると、プレビューに TSV が表示されます。TSV をダウンロード で .tsv ファイルとして保存できます。TSV では値の中のコンマを引用符で囲む必要がないため、ほとんどの行は単純なタブ区切りのテキストになります。決める必要があるのは、値の中のタブと改行の扱いだけです。Excel や pandas 向けには引用符で囲み、PostgreSQL 向けにはバックスラッシュでエスケープし、厳密な TSV を読み込むツール向けにはスペースに置き換えます。ファイルはブラウザー内で変換され、アップロードされることはありません。
CSV を TSV に変換する手順
.csv、.tsv、.txtファイルを開くか、ツールにドロップするか、行を貼り付けます。区切り文字は自動で判定されます。必要に応じて、読み込み設定 で区切り文字や、Windows-1252 などの従来の文字コードを指定してください。- 値の中のタブと改行 で、TSV を読み込むプログラムが前提とする方式を選びます。続けて 改行コード と 見出し行を含める を設定します。
- 出力の文字コード を選び、TSV をダウンロード を選ぶか、コピー でテキストをコピーします。
複数の CSV ファイルを同じ設定で変換するには、一括変換:複数のファイルを変換 を選びます。各ファイルは区切り文字の自動判定と見出し行ありの設定で読み込まれ、結果はまとめて 1 つの ZIP としてダウンロードされます。
タブ・改行・文字コードの設定
| 値を引用符で囲む(Excel、pandas) | 既定の設定です。タブ、改行、二重引用符を含む値や、先頭または末尾に空白がある値を二重引用符で囲み、値の中の引用符は 2 つ重ねます。区切り文字をタブにした CSV と同じ規則です。それ以外の値は、そのまま書き出されます。 |
|---|---|
| バックスラッシュでエスケープ \t \n(PostgreSQL) | 引用符は使いません。タブは \t、改行(LF)は \n、復帰(CR)は \r、バックスラッシュは \\ になるため、すべてのレコードが 1 行に収まります。これは PostgreSQL の COPY が読み込むテキスト形式で、二重引用符は通常の文字として書き出されます。 |
| スペースに置き換える(厳密な TSV) | 値の中のタブ、改行、CRLF の組はそれぞれ 1 つのスペースになり、フィールドにタブを含めないという IANA の規則に沿ったファイルになります。バックスラッシュと引用符はそのままです。この方式ではデータが変わるため、影響を受けた値の数が表示されます。 |
| 改行コード | 最後のレコードも含め、各レコードの後に Windows(CRLF)(既定)または Unix/macOS(LF) を付けます。 |
| 見出し行を含める | 既存の表に追加する場合など、データ行だけを書き出すにはオフにします。 |
| 表計算ソフトの数式として実行されないようにする | 既定でオンです。=、+、-、@、タブ、復帰(CR)で始まる値の先頭に ' を付け、表計算ソフトで文字列として表示されるようにします。-12.5 のような単純な数値は変わりません。TSV をデータベースやスクリプトに読み込ませるため値を正確に保つ必要がある場合は、オフにしてください。 |
| 出力の文字コード | UTF-8、UTF-8(BOM 付き・Excel 向け)、UTF-16 LE(BOM 付き)、Windows-1252 から選びます。Windows-1252 では、保存できない文字があるとその文字を示すメッセージを表示して中止します。 |
TSV でのコンマ・複数行のセル・ID
- CSV で引用符に囲まれていたコンマは、TSV では何もする必要がありません。
"Desk lamp, brass"はDesk lamp, brassになります。 - 複数行にわたるセルも 1 つの値のままです。引用符で囲む方式では引用符の中で複数行にわたり、エスケープする方式では
Ships in 2 boxes\nfragileのように 1 行で書き出されます。 - 先頭のゼロや桁数の多い ID はそのまま書き出されます。TSV には型がないため、
00731は00731のままです。 - エスケープする方式では、
C:\tempのような Windows のパスはC:\\tempと書き出されるため、エスケープを解釈する読み取りツールでは元の値に戻ります。 - 見出しより値が多い行には
Column 4、Column 5… という名前の列が追加され、値が少ない行は空の値で補われます。空の見出しはColumn 3、重複した見出しはname (2)になります。
TSV が正しく読み込まれない場合
- 読み込むと行が途中で分かれる。 読み取りツールが、引用符で囲まれた改行に対応していません。エスケープを解釈するツールなら バックスラッシュでエスケープ \t \n(PostgreSQL) を、解釈しないツールなら スペースに置き換える(厳密な TSV) を選んでください。
- 値の先頭にアポストロフィが付いている。 表計算ソフトの数式として実行されないようにする が働いています。データベースやスクリプトに読み込む場合はオフにしてください。
- 表計算ソフトにバックスラッシュの記号が表示される。 表計算ソフトはバックスラッシュのエスケープを解釈しないため、セルに
\nや\tと表示されます。Excel や LibreOffice で使うファイルには、値を引用符で囲む(Excel、pandas) を使ってください。 - すべての値が 1 つの列に入ってしまう。 入力の区切り文字の判定が誤っています。読み込み設定 で指定し、ファイルを開き直してください。
制限と大きなファイル
25 MB、10万行、250 列、200万セルまでのファイルは、リアルタイムのプレビュー付きで開きます。それより大きなファイルはストリーミング方式で変換します。ファイルを分割して 2 回読み込み(1 回目で最も列の多いレコードを確認し、2 回目で書き出す)、ダウンロードにはプレビューと同じ出力ですべての行が含まれます。このようなファイルでは コピー は使えず、1 つの出力は 4 GB までです。
ストリーミング方式では、ファイルの文字コードが自動で判定され(UTF-8、または BOM で始まる場合は UTF-16)、1 行目が見出しとして扱われます。
変換はこのタブ内のバックグラウンドのワーカーで実行され、キャンセル で中止できます。CSV の引用符の付け方のまま区切り文字だけを変えるには CSV の区切り文字・文字コード変換 を、ドキュメントに貼り付ける表が必要な場合は CSV を Markdown に変換 を使ってください。
例:受注リストを TSV に変換
引用符で囲まれたコンマ、2 行のメモ、数式のような値を含む受注リストを、既定の設定(値を引用符で囲む(Excel、pandas)、数式の保護はオン。改行コードは LF で表示)で変換した例です。バックスラッシュでエスケープ \t \n(PostgreSQL) を選ぶと、メモは Ships in 2 boxes\nfragile という 1 行になり、数式のような値は引用符なしで書き出されます。
id,product,note
00731,"Desk lamp, brass","Ships in 2 boxes
fragile"
00732,Cable tidy,"=HYPERLINK(""x"")"id product note
00731 Desk lamp, brass "Ships in 2 boxes
fragile"
00732 Cable tidy "'=HYPERLINK(""x"")"よくある質問
CSV と TSV の違いは何ですか?
違うのは区切り文字とその慣習だけです。TSV ではフィールドをタブで区切るため、値の中のコンマを引用符で囲む必要がありません。IANA の定義ではフィールド内のタブが禁止されているため、それをどう書き出すかはツールによって異なります。
PostgreSQL の COPY にはどのオプションを選べばよいですか?
バックスラッシュでエスケープ \t \n(PostgreSQL) を選び、数式の保護をオフにしてください。PostgreSQL のテキスト形式は既定でタブ区切りで、\t、\n、\r、\\ を解釈します。この形式の既定の NULL の表記は \N なので、空の値は空の文字列として読み込まれます。空の値を NULL として読み込むには、COPY のオプションに NULL '' を追加してください。
TSV を CSV に戻せますか?
はい。TSV を CSV の区切り文字・文字コード変換 で開いてください。タブの区切り文字が自動で判定され、出力をコンマ区切りやセミコロン区切りにできます。バックスラッシュのエスケープは解釈されず、通常の文字として読み込まれます。