Python 業務自動化 | Excel業務自動化:Excel基本操作 - Excel→CSV変換

Python Python
スポンサーリンク

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化することが多い。

整形処理をセットで行う

列名変更・型変換・並び替えを自動化すると業務効率が爆上がり。

フォルダ構造を自動生成する

店舗別・担当者別の管理が圧倒的に楽になる。

タイトルとURLをコピーしました