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

Python Python
スポンサーリンク
  1. CSV→Excel変換は「大量のCSVを一瞬でExcel化し、整形・加工・レポート作成の土台を自動で作る」ための最強スキル
  2. CSV→Excel変換の基本構造(最重要ポイント)
    1. CSV→Excel変換は次の3ステップで構成されます
  3. 最も基本的な「CSV→Excel変換」テンプレート
    1. CSVを読み込んでExcelに保存する最小コード
    2. 深掘りポイント
  4. 文字化け対策(日本語CSVで最も重要)
    1. Shift-JIS(Windows-31J)で保存されたCSVを読み込む
    2. 深掘りポイント
  5. 複数CSVをまとめてExcelに変換する(大量処理を自動化)
    1. フォルダ内のCSVをすべてExcel化
    2. 深掘りポイント
  6. CSVを読み込んで整形してからExcel化する(実務で最も使う)
    1. 列名変更・並び替え・型変換をしてからExcel保存
    2. 深掘りポイント
  7. CSVをExcelの複数シートに分けて保存する(レポート形式)
    1. 商品別にシートを分けてExcel化
    2. 深掘りポイント
  8. CSV→Excel変換+書式設定(openpyxlで見た目を整える)
    1. Excelに変換した後、列幅を自動調整する例
    2. 深掘りポイント
  9. 実務例①:毎日出力されるCSVを自動でExcel化する
    1. 例:POSシステムの売上CSVをExcelに変換
  10. 実務例②:複数CSVを1つのExcelにまとめる
    1. シートごとにCSVを格納する
  11. 実務例③:CSV→Excel変換+集計レポート作成
    1. 変換後に集計シートを追加
  12. Excel分割を業務で設計するときの視点
    1. CSVの文字コードを確認する
    2. ExcelWriter を活用する
    3. 整形処理をセットで行う
    4. openpyxl で書式を整える

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="商品別集計")
Python

Excel分割を業務で設計するときの視点

CSVの文字コードを確認する

UTF-8 か Shift-JIS かで読み込み方法が変わる。

ExcelWriter を活用する

複数シートのレポートが自動生成できる。

整形処理をセットで行う

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

openpyxl で書式を整える

提出できるレベルのExcelに仕上がる。

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