ツール
ガイド

CSV ツールキット

フォーマット

papaparse で CSV/TSV を解析・桁揃え・プレビュー。区切り文字と引用符はカスタマイズ可能、CSV と JSON の相互変換、列ごとのソートと重複除去にも対応。

100% クライアントサイド バックエンドなし

リモート URL の取得は行いません。JSON を直接貼り付けてください。

入力
出力
左に CSV を貼り付け、モードを選択してください。

ヨーロッパでは ; を CSV 区切り文字に使うことが多いです。

このページの内容

CSV ツールキットとは?#

CSV は表形式データのための最大公約数的な形式です——すべてのスプレッドシート、すべてのデータベースのインポートウィザード、すべての分析ツールが読めますが、詳細について合意するものはほぼありません。区切り文字はカンマですか、セミコロンですか?最初の行はヘッダーですか?値は " でクォートされますか、' ですか?あるツールで完璧に開けるファイルが、単に既定値が異なるだけで別のツールでは文字化けて届くことがあります。CSV ツールキットは、その選択を明示的にし、ファイルが必要なことをするように整形し直すために存在します。

このページは papaparse で駆動する 4 つの仕事をします。桁揃えはファイルを解析し、各セルをその列の幅まで埋め、コードレビューや README、バグレポートにそのまま貼り付けられる、等幅で列揃えされたグリッドを生成します——ずれた行がひと目で飛び込んでくるようなレイアウトです。プレビューは解析し、ページ内にテーブルを描画するため、何かをする前にデータを目視できます。CSV → JSONは行を JSON 配列(ヘッダーがあればオブジェクトの、なければ配列の)に変えます。JSON → CSVはその逆で、JSON 配列を受け取って CSV を出力します。そのすべてに加え、任意の列でソート、完全な行の重複除去、区切り文字の切替(カンマ、セミコロン、タブ、任意の 1 文字)、クォート文字の選択ができます——ファイルがパイプラインの次のツールを生き延びるかを決める、まさにそのノブです。

使い方#

  1. 左の入力ペインに CSV(JSON → CSV モードでは JSON)を貼り付けます。プレースホルダーが期待される形を示し、サンプルが小さなデータセットを読み込みます。
  2. モードボタンを選びます: 桁揃えプレビューJSON。JSON を選ぶと、方向のための第 2 のボタングループ——CSV → JSONJSON → CSV——が現れます。
  3. ツールバーで構造オプションを設定します:
    • 区切り文字 — カンマ、セミコロン、タブ、カスタム(カスタム値用の 1 文字フィールドが現れ、既定は |)。
    • 引用符 — ダブル(")かシングル(')。
    • 先頭行をヘッダー — 行 1 が列名のときチェック、ヘッダーなしデータならチェックを外します。ヘッダーモードは解析と JSON 出力の両方の形を決めます。
  4. 必要に応じてデータを整えます: ソート基準列を選び(ヘッダーから populate、あるいはヘッダーなし入力では数値インデックス)、順序で昇順・降順を選び、重複を除外にチェックを入れて完全に重複する行を削除します。
  5. 出力ペイン(プレビューモードではプレビューグリッド)で結果を読みます。ヘッダーが出力サイズと行数を示し、コピーで取り出します。クリアは両ペインをリセットします。

行のフィールド数が間違っていたり、入力が不正だったりすれば、ステータスバーが行番号を報告するため、推測するのではなくソースを直せます。

主な特徴#

  • 列揃えの出力。 桁揃えモードはすべてのセルをその列の最長値まで埋めるため、カンマの壁に見えた CSV が突然揃います——フィールドが 1 つ足りない行を見つけるのに役立ちます。
  • JSON への両方向。 CSV → JSON はオブジェクトの配列(ヘッダー付き)か配列の配列(ヘッダーなし)を生成します。JSON → CSV はどちらの形も受け付けます。
  • 区切り文字対応。 カンマ、セミコロン(カンマが小数点区切りであるヨーロッパのロケールで一般的)、タブ(TSV)、カスタム文字を切り替えられます。ツールバーの下のヒントが、セミコロンがなぜ存在するかを思い出させます。
  • ソートと重複除去。 両方の値が数値に見えれば数値で、そうでなければ辞書順にソートします。重複除外は完全な行の正確な繰り返しを削除します(ヘッダー行は常に保持)。
  • 安全なプレビュー。 プレビューグリッドは安全な DOM API だけで構築され——あなたのデータの innerHTML は一切使わず、textContent のみ——<script> タグだらけの CSV でも無害なテキストとして描画されます。
  • 厳格にクライアントサイドで、1 MB を超える入力には Web Worker を使います。

実例#

重複行とヘッダーを伴って貼り付けられた小さな名簿:

入力:

name,role,city
Ada,Engineer,London
Lin,Designer,Taipei
Ada,Engineer,London
Sam,Manager,Berlin

3 行目が Ada を正確に繰り返しています。区切り文字カンマ、ヘッダーオンで桁揃えをクリックし、重複を除外にチェック:

name role     city
Ada  Engineer London
Lin  Designer Taipei
Sam  Manager  Berlin

各列が最も広い値まで埋められ、3 行が揃い、重複した Ada は消えました——ステータスバーが 1 行削除したと報告します。ここで同じオプションでモードをJSON(CSV → JSON)に切り替えます:

[
  { "name": "Ada", "role": "Engineer", "city": "London" },
  { "name": "Lin", "role": "Designer", "city": "Taipei" },
  { "name": "Sam", "role": "Manager", "city": "Berlin" }
]

ヘッダー行がオブジェクトのキーになり、残りの各データ行がオブジェクトになりました。role でソートすれば行が辞書順に並び替わり、数値列でソートすれば値でソートされます。

よくある質問#

カンマの代わりにセミコロンを使うのはどんなときですか?#

データが値の一部としてカンマを含み、かつカンマが小数点区切りであるロケール(ヨーロッパの大部分、ラテンアメリカ)にいるとき——そこでは 3,14 は 2 つのフィールドではなく 1 つの数値です。そのようなロケールの Excel は既定でセミコロンで CSV を書き出します。ファイルがすべて列 A に詰め込まれて開かれるなら、区切り文字はほぼ確実に間違っています——セミコロンに切り替えて再揃えしてください。

重複を除外は実際に何を比較しますか?#

ヘッダーを分離した後、完全な等価性について行全体を比較します。2 つの行は、すべてのフィールドがセルごとに一致するときだけ重複です。ヘッダー行は決して重複とは見なされず、常に保持されます。部分一致(同じ名前、違う都市)は重複とは見なされません。

CSV → JSON はオブジェクトと配列をどうやって決めますか?#

先頭行をヘッダーにチェックがあれば、各データ行はキーがヘッダー名であるオブジェクトになります。チェックがなければ、各行は文字列の配列になり、Col 1Col 2 のようにラベル付けされるのはプレビュー内だけです——JSON 出力は配列の配列です。行 1 が本当に列名ならヘッダーオプションをチェックし、生の数値グリッドならチェックを外してください。

データはどこかにアップロードされますか?#

いいえ。解析と非解析はどちらもページに同梱された papaparse を通じてブラウザ内で走ります。1 MB を超えるファイルは Web Worker で処理されるため UI は応答性を保ちますが、データが端末から外に出ることはありません。