仕事で、WebシステムからCSVをダウンロードし、中身を少し修正して再登録することがあります。
今回あったのは、
「ExcelでCSVを編集して保存したら、システムへ再登録できなくなった」
という問い合わせでした。
Excel上では特におかしく見えません。
ただ、CSVを確認すると、Excelで開いたことによって元の形式が変わっている可能性がありました。
CSVはExcelで開くと内容が変わることがある
例えば、
00123
というデータがあっても、Excelが数値と判断すると、
123
として扱われることがあります。
日付も同じで、文字列として保存されていたものが、Excel側で日付として自動変換されることがあります。
最近のExcelでは、自動変換について確認メッセージが表示されることもありますが、内容を確認せず進めると意図しない変換が起こる可能性があります。
特に、
- 社員番号
- 商品コード
- 管理番号
- 日付項目
などは注意が必要です。
ダブルクォーテーションや改行も確認
CSVでは、
"00123","ABC","東京"
のように、値がダブルクォーテーションで囲まれていることがあります。
Excelで開いて保存すると、この形式が元と同じまま残るとは限りません。
また、備考欄などに改行が含まれている場合、編集後に意図しない形になることもあります。
システム側が決められたCSV形式を前提にしている場合、見た目の値が合っていても登録エラーになることがあります。
まず原本CSVを残しておく
今回のようなケースでは、ダウンロードしたCSVを直接編集しない方が安全です。
原本はそのまま残し、コピーしたファイルを編集します。
そのうえで、登録できない場合は原本と編集後のCSVをメモ帳などで見比べます。
確認するのは主に、
- 先頭0
- 日付
- ダブルクォーテーション
- 改行
- カンマ区切り
です。
Excelでは問題なく見えていても、テキストとして見ると違いが分かることがあります。
Excelで編集するなら文字列として読み込む
先頭0を残したい場合は、CSVをそのままダブルクリックするのではなく、
「データ」→「テキストまたはCSVから」
などから読み込み、対象列を文字列として扱う方法もあります。
これなら、
00123
をそのまま保持しやすくなります。
まとめ
今回の問い合わせでは、
Excelで見た目が正常でも、CSVとしては元と違う形になっていることがある
という点がポイントでした。
Webシステムから出力したCSVを編集して再登録する場合は、
原本を残してから編集する
これだけでも、トラブル時の切り分けがかなりしやすくなります。
特に先頭0や日付、ダブルクォーテーションがあるCSVは、保存後に一度テキストで確認しておくと安心です。

コメント