Excel→CSV変換は「Excelをシステム連携しやすいCSV形式に自動変換し、業務フローを高速化する」ための最強スキル
業務効率化を本気で考える人にとって、
Excel→CSV変換の自動化は“Pythonで最も簡単で効果が大きいExcel業務自動化” です。
Excelは人が扱いやすい形式ですが、
システム連携・データベース登録・外部サービスへのアップロードでは
CSV形式が必須 になることが多いです。
Pythonを使えば、
Excel読み込み → 整形 → CSV保存
まで完全自動化できます。
初心者でも理解できるように、例題を交えて丁寧に解説します。
Excel→CSV変換の基本構造(最重要ポイント)
Excel→CSV変換は次の3ステップで構成されます。
Excel読み込み(pandas)
Excelファイルを DataFrame として読み込みます。
整形処理(任意)
列名変更・型変換・不要列削除などを行います。
CSV保存(to_csv)
UTF-8 / Shift-JIS など、必要な文字コードで保存します。
この3つを理解すれば、どんなExcelでもCSVに変換できます。
最も基本的な「Excel→CSV変換」テンプレート
Excelを読み込んでCSVに保存する最小コード
import pandas as pd
df = pd.read_excel("data.xlsx")
df.to_csv("output.csv", index=False, encoding="utf-8")
Python深掘りポイント
read_excel()はExcel読み込みの基本to_csv()でCSV化index=Falseを付けると余計な行番号が入らない- encoding は「UTF-8」が基本(日本の業務システムは Shift-JIS が多い)
文字化け対策(日本の業務で最重要)
Shift-JIS(Windows-31J)でCSVを保存する
df.to_csv("output.csv", index=False, encoding="cp932")
Python深掘りポイント
日本の基幹システムは Shift-JIS(cp932) を要求することが多いです。
文字化けしたら encoding を変えるだけで解決します。
複数ExcelをまとめてCSVに変換する(大量処理を自動化)
フォルダ内のExcelをすべてCSV化
import pandas as pd
import glob
import os
files = glob.glob("excel_folder/*.xlsx")
for file in files:
df = pd.read_excel(file)
name = os.path.basename(file).replace(".xlsx", ".csv")
df.to_csv(f"csv_output/{name}", index=False, encoding="cp932")
Python深掘りポイント
globでフォルダ内のExcelを一括取得basename()でファイル名だけ取り出す- 1行も触らずに大量ExcelをCSV化できる
Excelの複数シートをそれぞれCSVに変換する(実務でよく使う)
Excelの各シートを別CSVに保存
import pandas as pd
xlsx = pd.ExcelFile("multi_sheet.xlsx")
for sheet in xlsx.sheet_names:
df = pd.read_excel("multi_sheet.xlsx", sheet_name=sheet)
df.to_csv(f"{sheet}.csv", index=False, encoding="utf-8")
Python深掘りポイント
- ExcelFile を使うとシート名一覧を取得できる
- シート単位でのCSV化は帳票管理でよく使われる
Excel→CSV変換+整形処理(実務で最も使う)
列名変更・並び替え・型変換をしてからCSV保存
df = pd.read_excel("sales.xlsx")
df.columns = ["日付", "商品", "数量", "売上"]
df["日付"] = pd.to_datetime(df["日付"])
df = df.sort_values("日付")
df.to_csv("sales.csv", index=False, encoding="cp932")
Python深掘りポイント
- 列名を日本語に変えると分かりやすい
- 日付型に変換すると並び替えが正しくなる
- Excel→CSV変換は「整形」とセットで使うと最強
Excel→CSV変換+フォルダ自動生成(実務で便利)
店舗別にフォルダを作ってCSV保存
import os
df = pd.read_excel("sales.xlsx")
for store, data in df.groupby("店舗"):
os.makedirs(store, exist_ok=True)
data.to_csv(f"{store}/{store}.csv", index=False, encoding="cp932")
Python深掘りポイント
- 店舗別・担当者別のCSVを自動生成できる
- フォルダも自動で作るため管理が楽になる
Excel→CSV変換の応用:複数条件で分割してCSV化
店舗 × 月 の組み合わせでCSV保存
df["月"] = pd.to_datetime(df["日付"]).dt.month
for (store, month), data in df.groupby(["店舗", "月"]):
data.to_csv(f"{store}_{month}月.csv", index=False, encoding="cp932")
Python深掘りポイント
複数条件での分割は、実務で非常に多いパターンです。
Excel→CSV変換を業務で設計するときの視点
文字コードを必ず確認する
UTF-8 か Shift-JIS かで読み込み方法が変わる。
シート単位での変換が必要か
帳票管理ではシートごとにCSV化することが多い。
整形処理をセットで行う
列名変更・型変換・並び替えを自動化すると業務効率が爆上がり。
フォルダ構造を自動生成する
店舗別・担当者別の管理が圧倒的に楽になる。
