- Excel新規作成は「Pythonで空のExcelを作り、自由にデータを書き込める状態にする」ための最初のステップ
- pandasでExcelを新規作成する(最も簡単で実務向け)
- openpyxlでExcelを新規作成する(セル単位で自由に編集)
- シート名を指定して新規作成する(複数シート対応)
- 列幅や書式を設定したExcelを新規作成する(見た目を整える)
- 例題①:空のExcelにヘッダーだけ作って保存する
- 例題②:複数シートを持つレポートExcelを自動生成する
- 例題③:pandasで集計 → openpyxlで書式設定 → Excel出力
- pathlib を使った読みやすいExcel新規作成
- Excel新規作成を業務で設計するときの視点
Excel新規作成は「Pythonで空のExcelを作り、自由にデータを書き込める状態にする」ための最初のステップ
Excel業務自動化の入口は “Excelファイルを新しく作ること” です。
ここを押さえると、レポート生成・テンプレート作成・自動集計など、あらゆるExcel自動化の基盤が整います。
PythonでExcelを新規作成する方法は主に2つあります。
- pandas を使って「表形式のExcel」を作る
- openpyxl を使って「セル単位で自由に編集できるExcel」を作る
どちらも用途が違うので、初心者でも迷わないように丁寧に解説します。
pandasでExcelを新規作成する(最も簡単で実務向け)
DataFrameを作ってExcelとして保存する
import pandas as pd
df = pd.DataFrame({
"商品": ["A", "B", "C"],
"数量": [10, 20, 30],
"金額": [1000, 2000, 3000]
})
df.to_excel("new_file.xlsx", index=False)
Python深掘りポイント
- pandas は「表形式のデータ」を扱うのが得意
to_excel()で一発でExcelを作成できるindex=Falseは「行番号をExcelに書かない」ための設定- 集計結果や一覧表を作る業務に最適
openpyxlでExcelを新規作成する(セル単位で自由に編集)
Workbook を作ってセルに書き込む
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws["A1"] = "商品"
ws["B1"] = "数量"
ws["C1"] = "金額"
ws["A2"] = "A"
ws["B2"] = 10
ws["C2"] = 1000
wb.save("created.xlsx")
Python深掘りポイント
- openpyxl は「セル単位の操作」に強い
- テンプレート作成・書式設定・レイアウト調整に向いている
- pandas ではできない細かいExcel操作が可能
シート名を指定して新規作成する(複数シート対応)
シートを追加して名前を付ける
from openpyxl import Workbook
wb = Workbook()
ws1 = wb.active
ws1.title = "売上"
ws2 = wb.create_sheet("在庫")
ws3 = wb.create_sheet("顧客")
wb.save("multi_sheet.xlsx")
Python深掘りポイント
create_sheet()で好きなだけシートを追加できる- シート名を付けることで業務用Excelの構造を作れる
- レポートや帳票のテンプレート作成に便利
列幅や書式を設定したExcelを新規作成する(見た目を整える)
openpyxl のスタイルを使う
from openpyxl import Workbook
from openpyxl.styles import Font, Alignment
wb = Workbook()
ws = wb.active
ws["A1"] = "タイトル"
ws["A1"].font = Font(bold=True, size=14)
ws["A1"].alignment = Alignment(horizontal="center")
ws.column_dimensions["A"].width = 20
wb.save("styled.xlsx")
Python深掘りポイント
- 太字・中央揃え・列幅調整など、Excelの見た目を整えられる
- レポート自動生成で「人が作ったようなExcel」を作れる
- pandas ではできない細かい書式設定が可能
例題①:空のExcelにヘッダーだけ作って保存する
シナリオ
業務で使う「空の入力フォーム」を自動生成したい。
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws.append(["日付", "担当者", "内容", "金額"])
wb.save("input_form.xlsx")
Python深掘りポイント
append()は1行追加する便利なメソッド- 入力フォームやテンプレート作成に最適
例題②:複数シートを持つレポートExcelを自動生成する
シナリオ
売上・在庫・顧客の3シートを持つExcelを作りたい。
from openpyxl import Workbook
wb = Workbook()
wb.active.title = "売上"
wb.create_sheet("在庫")
wb.create_sheet("顧客")
wb.save("report.xlsx")
Python深掘りポイント
- シート構造を自動生成できるため、毎月のレポート作成が楽になる
- あとは各シートにデータを書き込むだけで完成
例題③:pandasで集計 → openpyxlで書式設定 → Excel出力
シナリオ
売上データを集計し、書式付きExcelを作りたい。
import pandas as pd
from openpyxl import load_workbook
df = pd.read_excel("売上.xlsx")
total = df["金額"].sum()
df_out = pd.DataFrame({"売上合計": [total]})
df_out.to_excel("report.xlsx", index=False)
wb = load_workbook("report.xlsx")
ws = wb.active
ws["A1"].font = Font(bold=True)
ws.column_dimensions["A"].width = 20
wb.save("report.xlsx")
Python深掘りポイント
- pandas と openpyxl を組み合わせると最強
- 「データ処理は pandas」「見た目調整は openpyxl」
- 実務で最もよく使われるパターン
pathlib を使った読みやすいExcel新規作成
Pathオブジェクトで直感的に書ける
from pathlib import Path
from openpyxl import Workbook
wb = Workbook()
wb.save(Path("new_excel.xlsx"))
Pythonメリット
- パス結合が
/で直感的 - 大規模プロジェクトでも保守性が高い
Excel新規作成を業務で設計するときの視点
- pandas は「表形式のExcel」を作るのに最適
- openpyxl は「セル単位・書式設定・テンプレート作成」に最適
- 複数シート構造を自動生成するとレポート作成が楽になる
- 書式設定を組み合わせると「人が作ったようなExcel」が作れる
- 読み込み → 集計 → 新規作成 → 書き込みの流れが自動化の基本
