- CSV→Excel変換は「大量のCSVを一瞬でExcel化し、整形・加工・レポート作成の土台を自動で作る」ための最強スキル
- CSV→Excel変換の基本構造(最重要ポイント)
- 最も基本的な「CSV→Excel変換」テンプレート
- 文字化け対策(日本語CSVで最も重要)
- 複数CSVをまとめてExcelに変換する(大量処理を自動化)
- CSVを読み込んで整形してからExcel化する(実務で最も使う)
- CSVをExcelの複数シートに分けて保存する(レポート形式)
- CSV→Excel変換+書式設定(openpyxlで見た目を整える)
- 実務例①:毎日出力されるCSVを自動でExcel化する
- 実務例②:複数CSVを1つのExcelにまとめる
- 実務例③:CSV→Excel変換+集計レポート作成
- Excel分割を業務で設計するときの視点
CSV→Excel変換は「大量のCSVを一瞬でExcel化し、整形・加工・レポート作成の土台を自動で作る」ための最強スキル
業務効率化を本気で考える人にとって、
CSV→Excel変換の自動化は“Pythonで最も簡単で効果が大きいExcel業務自動化” です。
CSVはシステム出力でよく使われますが、
Excelで加工・分析するには毎回「開く→保存→整形」が必要。
Pythonを使えば、
読み込み → 整形 → Excel保存
まで完全自動化できます。
初心者でも理解できるように、例題を交えて丁寧に解説します。
CSV→Excel変換の基本構造(最重要ポイント)
CSV→Excel変換は次の3ステップで構成されます
- CSV読み込み(pandas)
- 整形処理(列名変更・型変換など)
- Excel保存(to_excel)
この3つを理解すれば、どんなCSVでもExcelに変換できます。
最も基本的な「CSV→Excel変換」テンプレート
CSVを読み込んでExcelに保存する最小コード
import pandas as pd
df = pd.read_csv("data.csv", encoding="utf-8")
df.to_excel("output.xlsx", index=False)
Python深掘りポイント
read_csv()はCSV読み込みの基本to_excel()でExcel化index=Falseを付けると余計な行番号が入らない- encoding は「UTF-8」が基本(Shift-JISの場合は
encoding="cp932")
文字化け対策(日本語CSVで最も重要)
Shift-JIS(Windows-31J)で保存されたCSVを読み込む
df = pd.read_csv("data.csv", encoding="cp932")
Python深掘りポイント
日本の業務システムは Shift-JIS(cp932) が多いです。
文字化けしたら encoding を変えるだけで解決します。
複数CSVをまとめてExcelに変換する(大量処理を自動化)
フォルダ内のCSVをすべてExcel化
import pandas as pd
import glob
import os
files = glob.glob("csv_folder/*.csv")
for file in files:
df = pd.read_csv(file, encoding="cp932")
name = os.path.basename(file).replace(".csv", ".xlsx")
df.to_excel(f"excel_output/{name}", index=False)
Python深掘りポイント
globでフォルダ内のCSVを一括取得basename()でファイル名だけ取り出す- 1行も触らずに大量CSVをExcel化できる
CSVを読み込んで整形してからExcel化する(実務で最も使う)
列名変更・並び替え・型変換をしてからExcel保存
df = pd.read_csv("sales.csv", encoding="cp932")
df.columns = ["日付", "商品", "数量", "売上"]
df["日付"] = pd.to_datetime(df["日付"])
df = df.sort_values("日付")
df.to_excel("sales.xlsx", index=False)
Python深掘りポイント
- 列名を日本語に変えるとExcelで扱いやすい
- 日付型に変換すると並び替えが正しくなる
- CSV→Excel変換は「整形」とセットで使うと最強
CSVをExcelの複数シートに分けて保存する(レポート形式)
商品別にシートを分けてExcel化
df = pd.read_csv("sales.csv", encoding="cp932")
with pd.ExcelWriter("sales_report.xlsx") as writer:
for product, data in df.groupby("商品"):
data.to_excel(writer, sheet_name=product, index=False)
Python深掘りポイント
- ExcelWriter を使うと複数シートを作れる
- 商品別・店舗別・担当者別レポートを自動生成できる
CSV→Excel変換+書式設定(openpyxlで見た目を整える)
Excelに変換した後、列幅を自動調整する例
from openpyxl import load_workbook
wb = load_workbook("output.xlsx")
ws = wb.active
for col in ws.columns:
max_length = 0
col_letter = col[0].column_letter
for cell in col:
if cell.value:
max_length = max(max_length, len(str(cell.value)))
ws.column_dimensions[col_letter].width = max_length + 2
wb.save("output_formatted.xlsx")
Python深掘りポイント
- CSV→Excel変換だけでは列幅が狭い
- openpyxl を使うと「見やすいExcel」に仕上がる
- レポート提出前の整形を自動化できる
実務例①:毎日出力されるCSVを自動でExcel化する
例:POSシステムの売上CSVをExcelに変換
df = pd.read_csv("daily_sales.csv", encoding="cp932")
df.to_excel("daily_sales.xlsx", index=False)
Python実務例②:複数CSVを1つのExcelにまとめる
シートごとにCSVを格納する
files = glob.glob("csv/*.csv")
with pd.ExcelWriter("all_data.xlsx") as writer:
for file in files:
name = os.path.basename(file).replace(".csv", "")
df = pd.read_csv(file, encoding="cp932")
df.to_excel(writer, sheet_name=name, index=False)
Python実務例③:CSV→Excel変換+集計レポート作成
変換後に集計シートを追加
summary = df.groupby("商品")["売上"].sum()
with pd.ExcelWriter("sales_report.xlsx") as writer:
df.to_excel(writer, sheet_name="元データ", index=False)
summary.to_excel(writer, sheet_name="商品別集計")
PythonExcel分割を業務で設計するときの視点
CSVの文字コードを確認する
UTF-8 か Shift-JIS かで読み込み方法が変わる。
ExcelWriter を活用する
複数シートのレポートが自動生成できる。
整形処理をセットで行う
列名変更・型変換・並び替えを自動化すると業務効率が爆上がり。
openpyxl で書式を整える
提出できるレベルのExcelに仕上がる。
