CSVの事故を見つけて、その場で直す。

CSV事故チェッカー

文字化け、列ずれ、先頭の0、日付になってしまう値を、ブラウザの中だけで見つけます。何が問題で、直す必要があるのかを言葉で説明し、必要な項目だけ直して保存できます。

CSVファイルはブラウザ内で処理され、サーバーへ送信されません。

確認の流れ

  1. CSVを読み込む
  2. 事故を見つける
  3. 修正版を保存

CSV事故チェッカーとは

商品CSV、顧客データ、社員データ、商品マスタ、郵便番号、電話番号、IDを、サービス同士で受け渡すときのための確認ツールです。形式が壊れていないかに加え、Excelなどの表計算ソフトで開き直したときに値が別物になる事故も探します。

エラー名を並べるだけではなく、何が起きているか、なぜ問題になるのか、直す必要があるのか、どう直すのかを、その場で読めるようにしています。

できること

  • 壊れていないかを見る

    区切り、引用符、セル内の改行、空行、列数の違い、文字コード、改行コードを確認します。

  • 表計算ソフトで起きやすい事故を説明する

    先頭の0、長い整数、日付に見えるコード、数式として実行されそうな値を、言葉で分けて出します。

  • 必要なものだけ直す

    引用の整えのように値の意味が変わらないものと、ゼロ埋めのように意味が変わり得るものを分けています。

  • 直した箇所を見せてから保存する

    行、列、修正前、修正後、理由を一覧します。保存するのは修正版の新しいファイルです。

代表的なCSV事故

先頭の0が消える

例00123

開くと123

数字として開かれたときの例

00123 が 123 になるのは、数字として開かれたときです。郵便番号や商品コードでは、別の値になってしまいます。引用符で囲むだけでは必ず防げません。

文字化け

例商品名

開くと別の文字

文字コードが違うときの例

Shift_JIS のファイルを UTF-8 として開くと、日本語が別の文字に化けます。逆も同じです。推定のときは、そのことを画面に出します。

列ずれ

例東京都,大阪府

開くと2つの列に割れる

引用符が無いときの例

東京都,大阪府 のようにセルの中にカンマがある行は、引用符が必要です。無いと、一つの住所が二つの列に割れます。

日付への自動変換

例1-2

開くと日付に見える

コードでも日付になることがある例

1-2 や 3/4 や 01-02 は、コードのつもりでも日付になることがあります。日付の列なら、それはエラーではありません。列名と値を見て判断できるようにしています。

長い数字

例123456789012345678

開くと指数の形になることがある

必ずこの表示になるわけではありません

16桁以上の整数は、表計算ソフトでは末尾が変わったり、指数の形になったりします。管理番号やIDで起きます。

数式として実行される値

例=SUM(A1)

開くと数式として実行されることがある

先頭が = のときの例

先頭が = や @ などのセルは、表計算ソフトで数式として実行される可能性があります。外部から来たCSVでは特に注意が必要です。-100 のような負の数は、これとは分けて扱います。

自動で直すものと、確認してから直すもの

引用符の付け方、セル内のカンマや改行、改行コードを揃えること、UTF-8 で保存することは、セルの文言を変えずに行えます。「安全に自動修正できる項目をまとめて修正」は、この範囲です。

ゼロ埋め、前後の空白の削除、空行の削除、日付に見えないようにする変更、数式として実行されにくくする変更は、データの意味が変わります。選んだときだけ実行し、修正前と修正後を一覧します。全部を一度に書き換えて、意味のある値まで変えることはしません。

すでに消えた先頭の0は、本来何桁だったかをファイルから復元できません。桁を指定したときだけ、0を足します。

修正前

  • 警告00123 のまま渡すと、開いた先で 123 になることがあります
  • 重大引用符が足りず、列がずれる行
  • 警告= で始まる、数式になり得る値

修正後

  • 保存短い数字は指定した桁まで 0 を足し、先頭に ' を付けて文字として残せます
  • 保存カンマや改行があるセルには、保存時に引用符を付けます
  • 保存数式になり得る値は、選んだときだけ先頭に ' を付けます

引用符で囲むだけでは、先頭の0が必ず残るわけではありません。新しいファイルとして保存し、元のCSVは上書きしません。

CSVは外に出ません

CSVファイルはブラウザ内で処理され、サーバーへ送信されません。

顧客情報や社員情報を含むCSVも、開いているブラウザの中で確認します。アップロード用の送信は行いません。診断のための外部サービスへ、セルの内容やファイル名を渡すこともありません。

  • 文字コードの判定、診断、修正版の作成はブラウザ内で行います。
  • CSVの中身、ファイル名、セルの値は外部へ送りません。
  • 元のファイルは上書きしません。保存するのは修正版の新しいファイルです。

使い方

  1. 01

    CSVを読み込む

    ファイルをドロップするか、ファイルを選びます。手元にファイルがなければ、サンプルでも試せます。

  2. 02

    説明を見て、直す項目を選ぶ

    何が起きているか、なぜ困るか、直す必要があるかを読んでから、必要な修正だけ実行します。

  3. 03

    修正版を保存する

    修正前と修正後を確認し、新しいCSVとして保存します。元のファイルは上書きしません。

よくある質問

Q1: CSVファイルはサーバーに送信されますか?
A1: 送信しません。CSVファイルはブラウザ内で処理され、サーバーへ送信されません。文字コードの判定も、診断も、修正版の作成も、開いている端末の中だけで行います。
Q2: 個人情報を含むCSVでも使えますか?
A2: 顧客名、メールアドレス、電話番号、住所、社員情報などが含まれていても、ファイルの中身をこのサイトへ送る作りにはしていません。画面を閉じれば、読み込んだ内容はこのブラウザ上から消えます。
Q3: Excelで先頭の0が消えるのはなぜ?
A3: 00123 のような値を、表計算ソフトが「数字」として開くと、先頭の0は不要な桁として落とされます。郵便番号、商品コード、社員番号、IDで起きやすい事故です。CSVに書いた時点では0が残っていても、開いたあとに消えます。
Q4: ダブルクォートで囲めば先頭ゼロを必ず保持できますか?
A4: 必ず保持できる、とは言えません。引用符はCSVの区切りを守るためのもので、表計算ソフトの自動変換を止める保証にはなりません。桁が分かっているときはゼロ埋めを使い、取り込むときは列を文字列にしてください。
Q5: CSVが文字化けするのはなぜ?
A5: ファイルの文字コードと、開く側が想定している文字コードが違うときに起きます。日本の業務では Shift_JIS(CP932)で書き出されたCSVを、UTF-8 として開いて文字が崩れることが多いです。このツールの判定は、断定できないとき「推定」と表示します。
Q6: UTF-8とShift_JISの違いは?
A6: どちらも文字をバイト列にする方式の名前です。UTF-8 は多くのWebサービスが前提にしていて、Shift_JIS は従来の日本語環境でよく使われます。半角の英数字だけなら、どちらで読んでも同じ文字になります。日本語が入ると差が出ます。
Q7: CSVの列がずれるのはなぜ?
A7: セルの中にカンマや改行があるのに引用符で囲まれていない、引用符の閉じ忘れ、行ごとに列数が違う、といったときに起きます。ずれると、隣の列の値が別の項目として取り込まれます。
Q8: 修正すると元ファイルも変更されますか?
A8: 変更しません。修正版は新しいファイルとして保存します。元のCSVを置き換えるかどうかは、保存したあとに自分で決めてください。
Q9: 大きなCSVも使えますか?
A9: 32MB以下、10万行までをこのブラウザの中で確認できます。それより大きいファイルは、分けてから開いてください。表は全行を一度に画面へ出さず、必要な行だけ表示します。
Q10: スマートフォンでも使えますか?
A10: 使えます。ファイルを選んで診断し、修正版を保存できます。表が横に長いときは、表の枠の中だけを横にスクロールします。

CSVを入れて、その場で確認する

ファイルはブラウザの中だけで読みます。直した内容は、新しいCSVとして保存できます。