Python 業務自動化 | Excel業務自動化:Excel基本操作 - Excel新規作成

Python Python
スポンサーリンク

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」が作れる
  • 読み込み → 集計 → 新規作成 → 書き込みの流れが自動化の基本

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