作り方の選び方
「どう作るか」は後で誰が・どんなソフトで開くかで決めます。まず全体像から。
| 方法 | 向いている人・場面 | 文字コード | 注意点 |
|---|---|---|---|
| Excel | 手早く表を作りたい・日頃Excelを使う | 選択可(UTF-8 推奨) | シート1枚のみ・0落ち |
| テキストエディタ | 数行のテストデータ・文字コードを厳密に管理 | 自由に指定 | 手入力の手間 |
| Googleスプレッドシート | 複数人で編集してから書き出す | UTF-8 固定 | Shift-JISは書き出せない |
| プログラム生成 | 大量データ・定期生成 | 自由に指定 | コードが必要 |
- Microsoft サポート — CSV ファイルの形式 — Excel保存時の仕様
- Google ヘルプ — ファイルのダウンロード — スプレッドシートからの書き出し
Excelで作る(もっとも一般的)
- 1行目に項目名を入力する氏名・部署・備考のように列名を並べます。空白列や結合セルは作らないでください。
- データを入力する数式は保存されず、計算結果の値だけが書き出されます。
- 「ファイル」→「名前を付けて保存」を選ぶ
- ファイルの種類で「CSV UTF-8(コンマ区切り)」を選ぶExcel 2016以降なら第一候補です。Microsoft 公式の保存形式ガイドでもUTF-8版が推奨されています。
- 保存先を決めて保存する「一部の機能が失われます」の警告はCSVでは正常な挙動なので、そのまま進めて問題ありません。
① シートは1枚しか保存されない。CSVは1ファイル=1シートです。複数シートのブックをCSV保存すると、アクティブなシートだけが書き出されます。
② 先頭の0や記号が消える。「0012」は数値の12として保存されます。該当列を文字列形式にするか、'0012 とアポストロフィを付けます。
テキストエディタで作る
文字コードを確実に指定したい場合、数行だけのテストデータを作る場合に向いています。Windowsのメモ帳なら保存時にエンコードを「UTF-8」に選べます(Microsoft のメモ帳ガイド参照)。
商品コード,商品名,単価,在庫
A-001,ノートパソコン,89800,12
A-002,"マウス, ワイヤレス",2980,140
A-003,モニター 27インチ,32800,7
保存するときは拡張子を .csv にし、エンコードをUTF-8(BOMなし)にします。Webシステムとの連携ではこの組み合わせがもっともトラブルが少ないです。
右下のステータスバーでエンコード(UTF-8 / Shift-JIS)と改行コード(LF / CRLF)を確認できます。Rainbow CSV 拡張を入れると列が色分けされ、列ずれがひと目で分かります。
- Python 公式 — csv モジュール — 規格(RFC 4180)に沿った読み書きの参考
- RFC 4180 — 引用符の正しい書き方
Googleスプレッドシートで作る
- 表を作成する共有しながら編集できるのが利点です。
- 「ファイル」→「ダウンロード」→「カンマ区切り形式(.csv)」現在開いているシートだけが書き出されます(Google ヘルプの公式手順)。
- 文字コードを確認する書き出されるのはUTF-8です。Shift-JISが必要な社内システムには、文字化けページの変換手順を使ってください。
- Google ヘルプ — スプレッドシートのダウンロード — 公式手順
プログラムで生成する
定期生成や大量データなら、コードで書き出すのが確実です。pandas の to_csv(公式ドキュメント) 一つで済みます。
import pandas as pd
df = pd.DataFrame([
{"商品コード": "A-001", "商品名": "ノートパソコン", "単価": 89800},
{"商品コード": "A-002", "商品名": "マウス", "単価": 2980},
])
# index=False を忘れると行番号列が増える
# utf-8-sig(BOM付き)ならExcelで開いても文字化けしない
df.to_csv("products.csv", index=False, encoding="utf-8-sig")
CSVの開き方
Excelで開く(データを加工したいとき)
ダブルクリックは避けて、Excelの「データ」→「テキスト/CSVから」で開きます。ダブルクリックだと先頭0の消失や指数表記が起きます(変換ページで詳解)。
メモ帳・テキストエディタで開く(中身を確認したいとき)
CSVはテキストなので、エディタで開けば元の文字列がそのまま見えます。ダブルクリックでExcelが立ち上がって困るときは、右クリック→「プログラムから開く」→「メモ帳」で開き、「常にこのアプリを使う」にチェックを入れると次回からエディタで開きます。
Windowsが .csv をExcelに関連付けているだけです。関連付けを変えるか、都度「プログラムから開く」を使ってください。
- Microsoft サポート — テキスト/CSVのインポート — Excelで開く正しい手順
よくある失敗と直し方
| 症状 | 原因 | 直し方 |
|---|---|---|
| 列がずれる | カンマ入りの値を引用符で囲んでいない | 値を "…" で囲む。RFC 4180 の引用符の仕様に従う |
| 先頭の0が消える | 数値として解釈された | インポート時に列を「テキスト」指定 |
| 日付が変わる | 日付形式の自動変換 | 同上。テキスト列にする |
| 開くと文字化け | 文字コードの食い違い | 文字化けページの3つの直し方 |
| 1行しか入らない | 改行コードが違う(旧MacのCR等) | LFまたはCRLFで保存し直す |
- RFC 4180 — 引用符・改行コードの仕様
- Microsoft サポート — インポート手順
よくある質問
Q.CSVファイルの拡張子は必ず .csv ですか?
事実上の慣習です。大文字の .CSV でも多くのソフトは開けますが、システム連携では小文字の .csv に統一するのが安全です。
Q.メモ帳でCSVを作るときの文字コードは?
Webやツール連携ならUTF-8、国内の基幹システム向けならShift-JIS(メモ帳では「ANSI」表示)です。相手側の仕様を確認してください。
Q.CSVに空のセルは入れられますか?
入れられます。カンマを続けて「値,,値」のように書くと、間が空のセルになります。行末の空セルも同様に扱われます。
Q.Excelで作ったCSVが他のソフトで開けないのはなぜ?
文字コードか区切り文字の可能性が高いです。まずメモ帳で開いて中身を確認し、文字化けページの手順で対処してください。
Q.作ったCSVの確認方法は?
メモ帳やVS Codeで開いて「行数・列数・引用符」を目視確認するのが基本です。行数が多いなら Excel のステータス行数か、プログラムで行数を数えます。