CSV ツール
CSV エクスポート、TSV データ、Excel / Google Sheets からコピーした表、任意の区切り文字テキストを貼り付けるほか、手元のファイルをそのまま開くこともできます。DevKitLab が区切り文字を自動判定し、編集できる表プレビューとして表示します。セルの前後の空白削除、空行・空列の削除、連続スペースの圧縮、重複行の削除、キーワードや正規表現による行の絞り込み、列ごとの並べ替え、ヘッダー名の変更、不要な行の削除、必要な列だけの保持まで、CSV の整理作業をひとつの流れで行えます。結果は CSV、TSV、JSON、またはドキュメントにそのまま貼れる Markdown テーブルとして出力できます。読み込み、解析、編集、書き出しはすべて現在のブラウザタブ内で完結し、データが端末の外へ送信されることはありません。
概要
普段ならパーサー、表ビューア、変換ツールを行き来する作業を、ひとつのローカルワークフローにまとめました。メール、管理画面、レポートシステムから届く、少し汚れた CSV を整えるための作業台です。
- 01
区切り文字と引用文字を自動判定
列数の揃い方をもとに、カンマ、セミコロン、タブ、パイプ区切りを判定します。データの出どころが不安定な場合は手動で上書きできます。引用ルールが違うエクスポートにも対応できるよう、ダブルクォートとシングルクォートを切り替えられます。
- 02
編集できる表プレビュー
解析した行をクリック可能な表として表示します。任意のヘッダーやセルを変更すると、その内容がそのまま最終出力に反映されます。固定ヘッダー、固定先頭列、リアルタイムの行数 / 列数 / 空セル数に加えて、各行の削除ボタンも用意しています。
- 03
一連のクリーンアップをまとめて実行
空白の削除、空行削除、空列削除、余分なスペースの圧縮、重複行の削除を、それぞれ独立したスイッチとして用意しています。元データの汚れ方に合わせて自由に組み合わせられます。
- 04
ヘッダーを理解した列操作
先頭行をヘッダーとして扱うか、通常のデータとして扱うかを切り替えられます。ヘッダーありの場合は列操作に実際の列名が表示され、なしの場合は 1、2、3… の列番号で扱います。表内で変更したヘッダー名は、すべての出力形式に反映されます。
- 05
数値に強い並べ替えと行の絞り込み
任意の列を昇順または降順に並べ替えられます。数値列は数値として扱うため 2 が 10 より前に来ます。テキスト列はロケールに沿った自然な順序で比較し、空セルは常に末尾へ送られます。行の絞り込みはキーワードと正規表現に対応し、特定の列だけを対象にすることも、一致した行を逆に除外することもできます。
- 06
必要な列だけを残せる
チェック式の pill で不要な列を非表示にできます。残した列だけがプレビューとすべての出力形式に反映されるため、50 列ある CRM エクスポートを、実際に使う 6 列だけに絞るような作業に向いています。
- 07
複数形式への出力
CSV、TSV、JSON(ヘッダーを key にしたオブジェクト配列)、GitHub Flavored Markdown テーブルへ切り替えられます。クリップボードへコピーすることも、分かりやすい既定名のファイルとしてダウンロードすることもできます。
- 08
完全にローカル、アップロードなし
ファイルの読み込み、解析、クリーンアップ、編集、出力はすべて現在のブラウザタブ内で実行されます。顧客リスト、財務エクスポート、社内ディレクトリ、PII が端末の外へ出ることはありません。
使い方
流れは、貼り付け、解析確認、クリーンアップ、形の調整、出力です。各ステップはリアルタイムに再計算されるため、出力は常にプレビューと同期します。
- 01
CSV、TSV、または表計算ソフトからコピーしたテキストを左側の入力欄に貼り付けます。ファイルを開くから手元のファイルを読み込むか、入力欄にドロップしても構いません。
- 02
解析設定で、自動判定された区切り文字と引用文字を確認します。合っていない場合は手動指定に切り替えます。
- 03
データの状態に合わせて先頭行をヘッダーとして使うを設定します。オンにすると列操作に実際の列名が表示され、オフにすると 1, 2, 3… のような番号で扱われます。
- 04
クリーンアップ設定で、セルの空白削除、空行削除、空列削除、連続スペースの圧縮、重複行の削除を必要に応じて組み合わせます。
- 05
キーワードや正規表現で行を絞り込み、並べ替える列と方向を選び、保持する列を絞ります。列名の変更や不要な行の削除は、プレビュー内で直接行えます。
- 06
出力形式(CSV / TSV / JSON / Markdown)を選び、結果をコピーするかファイルとしてダウンロードします。
詳細
実際の作業はCSV を変換するだけではなく、このエクスポートが汚れているので、誰かに渡す前に整えることがほとんどです。このページは、その作業を最初から最後まで支えるために作られています。
- 表を見ながらデータを整えられます。多くのオンライン CSV ツールはプレビューだけ、または変換だけですが、このツールでは各オプションの変更が表プレビューにすぐ反映されます。
- 先頭行をヘッダーとして使うは重要なスイッチです。ヘッダーなしのデータベース出力、ヘッダーなしの SQL ダンプ、ヘッダー付きの JSON フラット化テーブルを、同じ操作で扱えます。
- 数値に強い並べ替えにより、2, 10, 100 はその順番で並びます。10, 100, 2 のような文字列順の違和感を避けられます。
- クリーンアップは組み合わせて使えます。空白削除 → 空行削除 → 重複削除を一度に行えるため、スクリプトと Excel の間を行き来する必要がありません。
- 出力形式は下流に合わせて選べます。CSV は表計算ソフト、TSV は Google Sheets への貼り付け、JSON はコード、Markdown はドキュメントやチケットに向いています。
- データをアップロードしないため、顧客データ、給与表、チケットエクスポートなど、端末の外へ出すべきでない内容にも使いやすくなっています。
- プレビュー内で直接編集できるため、ヘッダーのスペルミスや 1 つだけおかしな値を直すために、CSV 全体を貼り直す必要はありません。行ごと不要な場合は、行番号の横の削除ボタンで取り除けます。
- 行の絞り込み、保持する列、セルの編集は重ねて使えます。4 万行のエクスポートでも、実際に渡したい十数行まで手早く絞り込めます。
活用シーン
よくある CSV クリーンアップ作業を速くするためのページです。流れはいつも同じで、貼り付け、整理、出力。変わるのはデータの出どころだけです。
-
CRM リードのインポート前処理
重複行を削除し、空レコードを取り除き、社内テスト用アカウントを絞り込みで外し、CRM が読まない列を落としてから、HubSpot / Salesforce / Pipedrive に取り込みやすい CSV として出力できます。
-
EC 商品テーブルのクリーンアップ
空の SKU 列を削除し、商品名の余分な空白を取り、カテゴリで並べ替え、アップロードテンプレートに合わせて product_id を id に変えるなど、Shopify、WooCommerce、BigCommerce 向けに整えられます。
-
マーケティングキャンペーンのレポート
対象チャネルだけに絞り、費用、表示回数、コンバージョンなどの重要列だけを残して、Sheets 用の CSV または週報用の Markdown として出力できます。
-
API 調査と契約確認
CSV サンプルを JSON に変換し、各行が API に渡るときにどのようなオブジェクトになるか確認できます。空文字列なのか、そもそもフィールドが存在しないのかも見分けやすくなります。
-
広告パフォーマンスデータの標準化
Google Ads、Meta、TikTok など、列名や順序が異なるエクスポートを共通 schema に近づけ、BigQuery や Looker に渡しやすくできます。
-
表ベースの一括コンテンツ編集
コンテンツタグで行を絞り、title / slug / status など必要な列だけを残し、Markdown として Notion や Linear のチケットへ貼り付けてレビューできます。
-
財務照合作業の前処理
金額列を整理し、空の合計行を削除し、日付で並べ替えて、QuickBooks、Xero、CSV インポーターが期待する形式に近づけられます。
-
サポートチケットのエクスポート整理
Zendesk、Intercom、HelpScout など複数プラットフォームのエクスポートから共通列だけを残し、ヘッダー名をそろえて、同じ schema に整えられます。
-
A/B テスト結果を Markdown レポートへ
勝ちパターンの行だけに絞り、lift で並べ替えて、PR 説明や postmortem にそのまま貼れる Markdown として出力できます。
-
データエンジニアリングの schema マッピング
プレビューを手動マッピング画面として使い、元の列名をターゲット schema に合わせて変更し、不要な列を削除して、loader スクリプト用の JSON として出力できます。
関連情報
CSV のクリーンアップが大きな形式変換フローの一部である場合は、JSON コンバーター と組み合わせると、JSON と CSV の間を行き来できます。出力した JSON を最後に構造確認したい場合は、JSON フォーマッター で構造を確認し、ネストを見て、読みやすい版または圧縮版をコピーできます。貼り付けた表の外側に空行、混在した改行、BOM などのノイズがある場合は、先に テキストクリーナー で整理できます。1 行 1 値のリストをテーブルにする前に、重複削除、並べ替え、番号付けをしたい場合は、行操作ツール で列を整えてから進むと安定します。CSV がデータベースのクエリ結果から来ていて、元のクエリも確認したい場合は、SQL フォーマッター で SELECT、JOIN、条件を読みやすく整えられます。
CSV には、そもそも本当の標準が存在しない
CSV は、それを説明するほとんどの文書より古くから存在します。RFC 4180 は 2005 年に出たもので、しかも Informational であって標準ではありません。よくある慣行を記録した文書であり、従わなければならない規則ではないのです。そのため CSV を書き出すプログラムは、それぞれの解釈でファイルを作ります。以下の 5 つの違いは、同じデータが 2 つのツールのあいだで噛み合わなくなる代表的な原因です。
-
区切り文字は、書き出したマシンによって変わる
カンマを小数点に使う地域——ドイツ、フランス、スペイン、ブラジル——では、Excel はセミコロン区切りの CSV を書き出します。カンマがすでに小数点に使われているからです。つまり
id;name;cityはごく普通の CSV です。このページが区切り文字を自動判定しなければならない理由もそこにあります。拡張子が.csvであることは、中身がカンマ区切りである証拠になりません。 -
1 レコードが何行にもまたがることがある
引用符の中の改行は正当です。備考欄に改行入りの住所やコメントを入れるのは、まったく規約どおりの書き方です。したがって CSV の行数はレコード数と一致せず、改行で分割する処理は最もよくある誤りの 1 つです。改行を含む引用符付きフィールドを上のツールに貼り付けてみてください。1 つのフィールドとして返ってきます。
-
引用符のエスケープは二重化であって、バックスラッシュではない
フィールドの中に引用符を入れるには、"he said ""hi""" のように二重に書きます。CSV においてバックスラッシュは、そもそもエスケープ文字ではありません。それなのに MySQL の
SELECT ... INTO OUTFILEは既定でバックスラッシュを使ってエスケープするため、その出力は厳密な CSV パーサーで崩れます。実測では plain\,text,3 は 2 つではなく 3 つのフィールドとして読まれます。 -
CSV に型はない。推測しているのは開いたソフトのほう
ファイルの中身はすべてテキストで、型は開いたプログラムが決めています。Excel は 007 を 7 に変え、19 桁の注文番号を指数表記で表示し、日付に見える識別子を日付に書き換えます。ヒトの遺伝子命名委員会が、まさにこの問題で一群の遺伝子名を改名したほどです。上のツールは推測しません。007 は 007 のまま、19 桁の ID も 1 桁も欠けません。ほぼ確実に Excel で開かれる相手に CSV を送る前に、どの列が書き換えられるかを確認してください。
-
列数が揃っていないときは、いちばん列数の多い行が基準になる
実際の書き出しでは、行の長さが揃っていないことがよくあります。ここでは最も列数の多い行を基準にします。短い行には空のセルが補われ、はみ出した列には位置に応じた名前が付きます。ヘッダー
a,b,cが3,4,5,6という行に出会うと、出力のヘッダーはa,b,c,4になります。4 列目の名前がそのまま 4 になるということです。変換前に列数をざっと確認しておくほうが、あとから下流で追いかけるよりずっと楽です。
使い方のヒント
CSV が大きくなるほど、また構造が不揃いになるほど、次の習慣がクリーンアップ結果を再現しやすく、予測しやすくしてくれます。
- まず先頭行をヘッダーとして使うを確認してください。ほかの列操作はすべて、1 行目がデータなのか列名なのかに依存します。
- おすすめの順序は、セルの空白削除 → 空行削除 → 空列削除 → 連続スペースの圧縮 → 重複行の削除 → 絞り込み → 並べ替え → 必要な列だけを保持、です。
- 数値列を並べ替える前に、値をざっと確認してください。数値に強い並べ替えは 2 と 10 を正しく扱えますが、12、12k、12,500 のような混在列ではテキストとして扱われることがあります。必要なら先に値を正規化してください。
- Markdown として出力する前に列数を絞ってください。12 列の Markdown テーブルは、生テキストでは問題なく見えても、Notion、Linear、GitHub のプレビューでは横に溢れやすくなります。
- エンジニアと非エンジニアの両方に共有する場合は、同じクリーンアップ済みデータを CSV と JSON の両方で出力すると便利です。JSON は key と構造を保ち、CSV は Excel でそのまま開けます。
- Sheets からコピーした内容にタブと改行が混ざっている場合は、区切り文字を手動でタブに固定すると安定します。自動判定でも多くの場合は正しく処理できますが、固定すると編集中の揺れを避けやすくなります。
- 列名を変更する場合は、プレビュー内のヘッダーを直接編集してください。新しい名前は CSV、TSV、JSON、Markdown のすべてに反映されます。
制限事項
このツールが何をしないのかを知っておくと、より安全に使えます。別のツールへ切り替えるべきタイミングも判断しやすくなります。
- 区切り文字の自動判定はヒューリスティックです。主要ツールからのきれいなエクスポートには強い一方、数行だけのサンプルや複数の区切り文字が混在するデータでは、手動指定が必要になることがあります。
- このツールは表をクリーンアップして形を整えますが、schema を強制するものではありません。必須フィールド、許可された enum、行をまたぐ業務ルールは、下流のバリデーターで確認してください。
- 数値の並べ替えでは、各セルをできる限り数値として読み取ります。12、12k、12,500 が混在する列はテキストとして並べ替えられます。厳密な数値順が必要な場合は、先に値を正規化してください。
- プレビューが描画するのは先頭 500 行までで、コピーとダウンロードには全行が含まれます。ただし数十 MB のテキストでは入力と編集自体が重くなるため、その規模では関係する部分だけを切り出すか、ストリーミング系のツールをおすすめします。
- Markdown 出力は単一の GitHub Flavored Markdown テーブルです。複数テーブルの文書、独自の列揃え、HTML セルは対象外です。
- 行の絞り込みはプレーンテキストと JavaScript の正規表現に対応し、大文字と小文字は区別しません。ただしクエリ言語ではないため、金額が 100 より大きいといった比較は表計算ソフトか SQL の担当です。
- これは表示と整形のためのツールであり、CSV diff ツールではありません。2 つのエクスポートを行単位で比較する場合は、専用の diff ビューアを使ってください。
- すべての処理はブラウザ内で行われます。プライバシー面では安心ですが、サーバー側の状態保存や端末間同期はありません。
よくある質問
解析、クリーンアップ、出力、プライバシー、各出力形式の使い分けについて、実用的な質問をまとめました。
CSV はどこかへアップロードされますか?
いいえ。解析、クリーンアップ、編集、並べ替え、絞り込み、出力はすべて現在のブラウザタブ内で完了します。サーバーとの通信やデータ分析はありません。顧客リスト、財務エクスポート、PII を含むデータにも使いやすい設計です。
TSV やパイプ区切りファイルにも対応していますか?
対応しています。自動判定はカンマ、タブ、セミコロン、パイプを対象にします。手動指定に切り替えれば、TSV ならタブ、ログ風のエクスポートならパイプ、欧州圏でよく使われる CSV ならセミコロンに固定できます。
先頭行をヘッダーとして使うは何を変えますか?
オンにすると 1 行目を列名として使い、並べ替え、列名変更、保持列の選択などで実際のラベルが表示されます。オフにすると 1 行目もデータとして扱われ、列は番号で表示されます。JSON 出力もこの設定に連動し、オンならヘッダーを key にしたオブジェクト、オフならインデックス由来の key になります。
特定の列だけを残せますか?
できます。保持する列で不要な列をオフにすると、プレビューとすべての出力形式から即座に除外されます。少なくとも 1 列は残す必要があります。
特定のキーワードを含む行を削除できますか?
できます。行の絞り込みを開いてキーワードを入力し、一致した行を除外を有効にすると、その語を含む行がすべて外れます。パターンで指定したい場合は正規表現に切り替え、特定の列だけに絞ることもできます。数行だけなら、プレビューの行番号の横にある削除ボタンで取り除けます。
列名を変更できますか?
できます。プレビュー内の任意のヘッダーをクリックして、その場で編集できます。新しい名前は CSV、TSV、JSON の key、Markdown のヘッダー行に反映されます。
単一のセルも編集できますか?
できます。任意のセルをクリックすると、その場で編集できます。変更は出力形式を切り替えても保持されるため、一度直せばすべての出力に反映されます。
JSON として出力できますか?
できます。出力形式を JSON に切り替えると、結果は [{...}, {...}] の配列になります。各行が 1 つのオブジェクトになり、key には現在のヘッダー名が使われます。
Markdown として出力できますか?
できます。Markdown 出力では、パイプ文字のエスケープと --- 区切り行を含む GitHub Flavored Markdown テーブルを生成します。PR 説明、Notion、Linear、ドキュメントサイトにそのまま貼り付けやすい形式です。
並べ替えは数字を正しく扱えますか?
扱えます。数値として解析できる列は数値順で並びます(2, 10, 100)。それ以外の列はロケールに基づく自然なテキスト順になります。混在した列はテキストとして扱われます。
区切り文字の自動判定が外れた場合は?
解析設定 → 手動指定に切り替え、正しい区切り文字を選んでください。自動判定は先頭およそ 20 行の列数の揃い方をもとにスコアリングするため、短いサンプルや乱れたヘッダーでは外れることがあります。
貼り付けずに CSV ファイルを直接開けますか?
できます。ファイルを開くはブラウザの File API でローカルに読み込むだけで、入力欄へのドロップも同じ動作です。内容がどこかへ送信されることはなく、ファイル名はダウンロード時の既定名になります。1 ファイルあたり 8 MB までです。
どれくらい大きな CSV を開けますか?
数千行 × 数十列程度なら快適に使えます。数万行でも処理できます。プレビューは先頭 500 行までを描画し、コピーとダウンロードには全行が含まれます。それ以上のサイズでは、関係する行だけを切り出してから処理することをおすすめします。
引用符付きの文字列にエスケープが残るのはなぜですか?
解析設定の引用文字が入力と合っているか確認してください。多くの CSV はダブルクォートを使いますが、古い Excel エクスポートや一部の地域設定ではシングルクォートが使われることがあります。引用文字が合っていないと、エスケープ値を正しく復元できません。
関連ツール
CSV が CSV のまま終わることはあまりありません。JSON になり、JSON になったら構造を確かめ、あるいは前回の書き出しと突き合わせてどこが動いたかを見ることになります。