CSV出力は見落としやすいポイントが多いです。まず、現場で使えるチェック一覧をまとめました。
早見表
| 確認項目 | 内容 |
| 文字コード | UTF-8 か、Shift-JISか。Excelで開くとデフォルトがSJISのため設定しないと文字化けする。 |
| 囲い文字 | 「”」で囲むかどうか。 |
| データ形式 | 日付の区切り(yyyy/MM/dd なのか yyyy-MM-dd なのか)などフォーマットを明確にする。 |
| マッピング資料 | どのテーブルのどのカラムを、CSVのどの列に対応させるか設計書に記載する。お客さんに確認を取る。 |
| テンプレート | テンプレートがある場合は事前にもらう。 |
| サンプルデータ | 1件・複数件・異常データなど想定ケースを用意して表示確認する。 |
| データの並び順 | 行ごとのデータの並び順は何順か。 |
解説
文字コード
単純にcsv出力をすると大体utf-8が一般的かと思います。
しかし、お客様がエクセルを使用して開くとなると文字化けが起こります。(エクセルのデフォルトがsjisのため)また、エクセルで開くと「0落ち」したり「日付のフォーマット」が変わったりしてしまうのでエクセルで開いて編集する可能性があるかを確認しましょう。
マッピング資料
開発経験がある方なら感じたことがあると思いますが、仕様の解釈がずれると後で治すのが大変です。
だからこそ、CSVの列ごとに
- 対応するテーブル
- 対応するカラム
- 表示フォーマット
等を一覧化したマッピング資料を作成し、設計書に盛り込んでお客様に了承を得ることが大切です。
例として以下のようなcsvとすると次のマッピングをします。
ユーザ名,登録日,都道府県
山田太郎,2024/09/30,23
山田次郎,2025/11/25,30
伊藤花子,2023/07/04,16
| 項目 | サンプル | テーブル | 変換 | 備考 | |
| ユーザ名 | 山田太郎 | 山田次郎 | ユーザマスタ.ユーザ名 | ||
| 登録日 | 2024/09/30 | 2025/11/25 | ユーザマスタ.登録日 | 「/」区切り | |
| 都道府県 | 23 | 30 | 都道府県マスタ.都道府県名 | ユーザマスタ.都道府県IDと都道府県マスタ.都道府県IDで紐づけ | |
サンプル列はデータを抜粋して書いておくことで、実際のデータを想像しながらPGを作成することができます。
テンプレート
すでにCSVのひな型があったり、国や業界のルールによってフォーマットが指定されている場合はテンプレートが既存システムでテンプレートが使用されている可能性もあります。
テンプレートがあるか確認しておきましょう。
サンプルデータ
実際に仕様通りのcsvデータを作成し、認識のずれがないか確認しておきましょう。
ここでポイントになるのは、いろんなパターンを考慮したサンプルを確認することです。
- 1件
- 複数件
- カンマや長文
- 半角スペースが入っている
などケースによっては受け入れられない可能性もあります。
csvを出力した後はだいたい別のシステムや機能で取り込みます。先の機能に合わせた形でないと意味がないので気を付けましょう。
並び順
csvをワークテーブルに登録し、ワークテーブルから本テーブルに登録する流れの場合、並び順を意識しておきましょう。
現場でのやらかしですが、ワークから取得してエラーとなった列番号をログに出すという処理を作りました。
しかし、並び順を指定しておらずcsvと異なる順番で取得されてしまい、ログに出力される行番号が一致しない不具合が発生しました。
csvでの順番、ワークから取得する際のorder byを合わせましょう。
まとめ
csvは一見シンプルですが、気を付けなければならないポイントが多いです。
しかし、
- 早見表でチェック
- マッピング資料で認識合わせ
- 文字コードやフォーマットの確認
- サンプルで最終確認
を押さえておけば、仕様の抜け漏れを減らすことができます。
現場で使える内容化と思いますので、ぜひ手元に置いて活用してみてください。
