BLOGIT基礎
Excel・CSV取込の崩れを防ぐ|日付・先頭ゼロ・文字コード
CSVを開いただけで、郵便番号の先頭ゼロや長い管理番号が変わることがあります。目で数件見るだけでなく、列ごとの型と例外を確認します。

先に結論元ファイルを保存し、文字列・数値・日付の意味を列ごとに決めてから取り込みます。
列ごとの意味と形式を決める
顧客コード、電話、郵便番号は計算しない文字列、数量や金額は数値、日付は対象の年月日として定義します。見た目が数字でも用途で型は変わります。
空欄、0、未設定、対象外を同じ値にせず、業務上の意味を確認します。必須か任意かも取込前に決めます。
日付と長い番号を重点確認する
和暦、年月だけ、時刻付き、Excelシリアル値、存在しない日付を含む例を試します。月日が入れ替わる形式やタイムゾーンにも注意します。
先頭ゼロ、16桁以上の番号、指数表示を確認します。カード番号等の機密情報を試験用に使わず、同じ桁構成の架空値を用意します。
文字コード・改行・数式を分ける
UTF-8、Shift_JIS、機種依存文字、旧字体、絵文字を含む匿名例で文字化けを確認します。セル内改行やカンマ、引用符を単純分割しません。
Excelの数式は表示値と式のどちらを移すか決めます。外部参照やマクロをそのままサーバーで実行せず、必要な計算を仕様として確認します。
取込前プレビューと結果表を出す
列対応、変換後の例、正常・警告・エラー件数を表示し、確定前に戻れるようにします。一部エラー時に全件取消か正常分だけ登録かを明示します。
取込後は元行番号、新ID、結果、理由を出力します。二度押しや同じファイルの再取込で重複せず、元ファイルとログを権限付きで保管します。
相談前にそろえるもの
- 列の型・意味
- 日付・先頭ゼロ・長い番号
- 文字コード・改行
- 数式・外部参照
- プレビュー・結果表・重複防止
全部そろっていなくても構いません。分かる範囲を確認し、業務ルールや金額に関わる部分は担当者と一緒に決めます。