CSVとは
CSV(Comma-Separated Values)はカンマ区切りの値ファイルです。最もシンプルな表データフォーマットで、1行が1レコード、フィールド間はカンマで区切られます。
名前,年齢,都市
Tom,25,北京
Jerry,30,上海
CSVはデータ交換の汎用フォーマットです。Excel、データベース、プログラミング言語すべてがCSVの読み書きに対応しています。
CSVの解析ルール
基本構造
- 1行が1レコード
- フィールドは区切り文字(通常カンマ)で区切られる
- 最初の行は通常ヘッダー
- 改行でレコードを区切る
カンマを含むフィールド
フィールドにカンマが含まれる場合、ダブルクォートで囲みます:
名前,説明
Tom,"Hello, world"
囲まないと2つのフィールドとして扱われます。
ダブルクォートを含むフィールド
フィールドにダブルクォートが含まれる場合、2つのダブルクォートでエスケープします:
名前,説明
Tom,"He said ""Hello"""
改行を含むフィールド
フィールドに改行が含まれる場合、ダブルクォートで囲みます:
名前,説明
Tom,"1行目
2行目"
区切り文字のバリエーション
- カンマ:標準CSV
- セミコロン:ヨーロッパでよく使用(Excelヨーロッパ版のデフォルト)
- Tab:TSV(Tab-Separated Values)
- パイプ:一部のシステムで使用 |
変換前に区切り文字を確認してください。
データクリーニング
空白の削除
- フィールド前後のスペース:trimで処理
- 空行:削除
- BOMヘッダー:削除
フォーマットの統一
- 日付:YYYY-MM-DDに統一
- 数値:小数点を統一(桁区切り記号は使用しない)
- ブール値:true/falseまたは0/1に統一
- エンコード:UTF-8に統一
欠損値の処理
- 空フィールド:デフォルト値を入れるかnullとしてマーク
- 行全体が欠損:削除または補完
- 重要フィールドの欠損:エラーとしてマーク
重複排除
- 完全重複行:削除
- 主キー重複:最新を残すまたはマージ
よくある問題
文字化け
CSVのエンコード問題が最もよくあります。ExcelのデフォルトはGBK(中国語版)、他のツールはUTF-8を使用します。
解決策:
- Excelエクスポート時に"CSV UTF-8"を選択
- テキストエディタでUTF-8として保存
- 自動エンコード検出に対応する変換ツールを使用
区切り文字の識別エラー
CSVはカンマを使用しますが、Excelヨーロッパ版のデフォルトはセミコロンです。CSVを開くとすべて1列に詰め込まれます。
解決策:
- テキストエディタで開いて区切り文字を確認
- Excelインポート時に区切り文字を指定(データ → 区切り位置)
BOMヘッダー
ExcelからエクスポートしたUTF-8のCSVにBOM(\uFEFF)が付く可能性があります。最初のフィールド名の前に不可視文字が入ります。
解決策:テキストエディタでBOMを削除するか、変換ツールで自動処理します。
数値が科学表記になる
長い数値(IDカード番号、注文番号)がExcelで科学表記(1.23E+18)になります。
解決策:
- Excelで該当列を"テキスト"形式に設定してから貼り付け
- CSVで数値の前にシングルクォートを付ける('123456)
- インポート時に該当列をテキストとして指定
日付フォーマットの混乱
地域により日付フォーマットが異なります:
- 中国:2024/1/1
- 米国:1/1/2024
- ヨーロッパ:1.1.2024
解決策:ISO 8601(2024-01-01)に統一します。
改行コードの不一致
Windowsは \r\n、Mac/Linuxは \n を使用します。混用すると解析エラーになります。
解決策:改行コードを統一します。
CSV変換
CSV to JSON
プログラムはCSVよりJSONの方が扱いやすいです。CSV to JSONツールでワンクリック変換できます。
CSV to Excel
CSVファイルをExcelで開くと表になります。ただしエンコードと区切り文字に注意してください。
Excel to CSV
ExcelからCSVとして保存します。注意点:
- アクティブなワークシートのみ保存
- 数式は値になります
- 書式は失われます
- 複数のワークシートは個別に保存
バッチ処理
複数CSVの結合
複数のCSVファイルを1つに結合:
- ヘッダーが一致していることを確認
- 最初のファイルのヘッダーを保持
- 以降のファイルのヘッダーを削除
- 内容を結合
大きなCSVの分割
大きなCSVを行数で分割:
- 各ファイルにヘッダーを保持
- 指定行数で分割
- 複数の小さなファイルを生成
データのフィルタリング
条件でCSVデータをフィルタリング:
- 特定フィールドが特定の値と一致
- 数値範囲でフィルタ
- 日付範囲でフィルタ
DocsAllでCSVを処理
- CSVファイルをアップロードまたは内容を貼り付け
- 自動解析
- JSONに出力変換
- コピーまたはダウンロード
ブラウザ上で処理—データはアップロードされません。
処理のコツ
まずデータを確認
処理前にCSVの内容を確認:
- テキストエディタで開く(Excelは使わない)
- 区切り文字を確認
- エンコードを確認
- ヘッダーを確認
- データの完全性をチェック
元ファイルをバックアップ
処理前に元のCSVをバックアップします。クリーニングでエラーが起きてもロールバックできます。
小バッチでテスト
まず数行を処理してロジックが正しいことを確認してから、バッチ処理します。
結果をバリデーション
処理後にバリデーション:
- 行数は正しいか(クリーニング後、予想より減っていないか)
- フィールド数は一致しているか
- 重要データをサンプルチェック
まとめ
CSV処理のポイント:解析ルールの理解(カンマ、クォート、改行)、エンコード問題の解決(UTF-8、BOM)、データクリーニング(空白、フォーマット、欠損値)、フォーマット変換(JSON、Excel)。処理前にデータを確認し、処理後に結果をバリデーションします。DocsAll CSV to JSONツールはブラウザ上で動作し、データが外部に漏れません。