CSVバリデーター

CSVバリデーター

読み込んだファイル:

スプレッドシートでは問題なく開けるCSVでも、データベースへのインポートやAPIへのアップロードで失敗することがあります。このバリデーターはRFC 4180の定義に沿ってファイルを読み取り、構造上の問題をすべて行番号つきで表示します。閉じられていない引用符、列数が合わない行、空または重複したヘッダー名、先頭のバイトオーダーマーク(BOM)、行末に残った区切り文字などです。テキストを貼り付けるかファイルを選び、区切り文字を指定して(自動検出も可能)、レポートを確認してください。

CSVファイルを検証する手順

  1. 1

    CSVを貼り付けるかアップロードします

    ボックスにテキストを貼り付けるか、.csv、.tsv、.txtのファイルを選びます。1,000,000文字までのファイルに対応しています。

  2. 2

    区切り文字とヘッダー行を選びます

    区切り文字は自動検出のままにするか、カンマ、セミコロン、タブ、パイプから指定します。1行目が列名かどうかも選択してください。

  3. 3

    レポートを確認します

    各問題は行番号とわかりやすい説明つきで表示され、エラーか警告かが区別されます。レポートはコピーして共有できます。

  4. 4

    修正して再チェックします

    エディターで該当行を直し、最初からやり直してファイルを貼り付け直します。レポートに問題なしと表示されるまで繰り返してください。

バリデーターがチェックする内容

RFC 4180は、CSVにとって標準に最も近い仕様です。レコードは改行で区切ること、区切り文字・引用符・改行を含むフィールドは二重引用符で囲むこと、引用符で囲んだフィールド内の引用符は2つ重ねて書く("")ことが定められています。バリデーターはこれらのルールをテキストに適用し、実務で重要なチェックをいくつか加えています。

チェック項目と報告のしかた

チェック 重大度 検出される条件
引用符の不一致 エラー 引用符つきフィールドが開かれたまま、閉じられる前にファイルが終わっている。表示される行は引用符が開かれた行です。
引用符なしフィールド内の引用符 エラー 引用符で始まらないフィールドの途中に " がある。例:5" pipe
閉じ引用符の後のテキスト エラー 閉じ引用符の後に区切り文字や改行以外が続いている。例:"abc"def
列数 エラー 1行目よりフィールドが多い、または少ない行がある。
空のヘッダー名 エラー ヘッダー行の列名が空になっている。
重複したヘッダー名 エラー スペースと大文字小文字を無視すると、2つの列が同じ名前になる(Name と name)。
バイトオーダーマーク 警告 ファイルが目に見えない文字 U+FEFF で始まっている。
行末の区切り文字 警告 行が区切り文字で終わり、空の余分な列が1つできている。
空行 警告 レコードとレコードの間に空の行がある。

区切り文字

自動モードでは、空でない最初の25行を調べ、同じ数のフィールドに最も多く分割できるカンマ、セミコロン、タブ、パイプを選びます。引用符で囲まれたフィールド内の区切り文字は無視されるため、"Smith, J" が2列と数えられることはありません。候補が同点の場合はカンマが優先されます。小数点にカンマを使う地域ではセミコロン区切りのファイルがよく使われます。両方が混在するファイルでは、区切り文字を自分で指定してください。

行番号

行番号は、入力したテキストの物理的な行を1から数えたものです。改行を含む引用符つきフィールドは複数の物理行にまたがります。そのレコード内の問題は、レコードが始まる行で報告されます。

CSVエラーのよくある原因

  • スプレッドシートからの書き出しでBOMが付き、一部のインポーターがそれを最初の列名の一部として読んでしまう。
  • カンマや引用符を含む自由記述の列が、書き出しスクリプトで引用符で囲まれていない。
  • 列数の異なるファイルを結合した。
  • すべての値の後ろに区切り文字を付けて書き出すスクリプトが、行末にカンマを追加している。

よくある質問

いいえ。行のフィールド数が1行目と同じであれば、末尾の空の値は通常のデータです。行末の区切り文字として警告されるのは、1行目より1フィールド多くなる場合と、ヘッダー行自体が区切り文字で終わっている場合だけです。

引用符つきフィールドが閉じられないと、それ以降はすべてそのフィールドの一部として読まれるため、後続の行を正しく比較できません。報告された行の引用符を直してからもう一度検証すると、その先の問題が表示されます。

いいえ。チェックするのはファイルの構造だけです。引用符、区切り文字、列数、ヘッダー名、バイトオーダーマーク、空行が対象で、値が正しい数値・日付・メールアドレスかどうかは確認しません。テキストはUTF-8として読み込みます。

いいえ。貼り付けたテキストや選択したファイルは、お使いのブラウザー内で読み取り・チェックされます。当社のサーバーには送信されず、ページのリンクにも含まれません。ステップ間ではブラウザーのこのタブ内にのみ保持され、最初からやり直すと消去されます。リンクに含まれるのは、区切り文字とヘッダーの選択だけです。

関連ツール

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