Python 業務自動化 | Excel業務自動化:Excel基本操作 - セル値書き込み

Python Python
スポンサーリンク

セル値書き込みは「Excelの特定セルにPythonから値を入れ、レポートや帳票を自動生成する」ための最重要スキル

Excel業務自動化の中でも セルに値を書き込むことは、ほぼすべての自動化処理の中心になります。
なぜなら、次のような業務がすべて「セル書き込み」で実現できるからです。

  • テンプレートExcelにデータを埋め込む
  • レポートのタイトルや日付を自動入力する
  • 集計結果を指定セルに書き込む
  • 入力フォームを自動生成する
  • コピーしたシートに値を流し込む

Pythonでは openpyxl を使うことで、Excelのセルに自由に値を書き込めます。
初心者でも理解しやすいように、基本から実務テンプレートまで丁寧に解説します。


openpyxlでセルに値を書き込む基本(最も実務向け)

最小構成:A1 に値を書き込む

from openpyxl import load_workbook

wb = load_workbook("sample.xlsx")
ws = wb["Sheet1"]

ws["A1"] = "こんにちは"
ws["B1"] = 123

wb.save("sample.xlsx")
Python

深掘りポイント

  • ws["A1"] = 値 でセルに直接書き込める
  • 文字列・数値・日付など、Excelが扱えるものは何でも書き込める
  • openpyxl は「セル単位の操作」に強いため、細かい制御が可能

行番号・列番号で書き込む(動的な位置指定に便利)

row と column を使って書き込む

ws.cell(row=2, column=3, value="C2 に書き込み")
Python

深掘りポイント

  • row=2, column=3 は「C2」を意味する
  • ループ処理で大量のセルに書き込むときに必須
  • 動的にセル位置を決めたい場合に非常に便利

数式を書き込む(Excel側で計算させる)

SUM関数をセルに書き込む

ws["C10"] = "=SUM(C2:C9)"
Python

深掘りポイント

  • 数式は文字列として書き込むだけでOK
  • Excelを開いたときに自動計算される
  • レポート自動化で「計算式を埋め込む」場面は非常に多い

日付を書き込む(Excel形式で扱える)

Pythonの datetime をそのまま書き込む

from datetime import datetime

ws["A2"] = datetime.now()
Python

深掘りポイント

  • openpyxl は datetime を自動で Excel 日付として扱う
  • 日付入りレポートやログ作成で必須

セル範囲にまとめて書き込む(表形式の出力に便利)

append() を使って1行ずつ追加

ws.append(["商品", "数量", "金額"])
ws.append(["A", 10, 1000])
ws.append(["B", 20, 2000])
Python

深掘りポイント

  • append() は1行追加する便利なメソッド
  • 表形式のデータをExcelに書き込むときに最適
  • pandas を使わずにExcelだけで完結したい場合に便利

例題①:売上合計をテンプレートの指定セルに書き込む

シナリオ

売上データを読み込み → 合計を B2 に書き込みたい。

from openpyxl import load_workbook
import pandas as pd

df = pd.read_excel("sales.xlsx")
total = df["金額"].sum()

wb = load_workbook("template.xlsx")
ws = wb["Summary"]

ws["B2"] = total

wb.save("report.xlsx")
Python

深掘りポイント

  • pandas で集計 → openpyxl で書き込み の組み合わせは最強
  • テンプレートを使ったレポート自動化の基本パターン

例題②:コピーしたシートに店舗名と売上を埋め込む

シナリオ

テンプレートをコピー → 値を流し込む。

from openpyxl import load_workbook

wb = load_workbook("stores.xlsx")
template = wb["テンプレート"]

ws = wb.copy_worksheet(template)
ws.title = "東京店"

ws["B2"] = "東京店"
ws["B3"] = 250000

wb.save("stores.xlsx")
Python

深掘りポイント

  • コピーしたシートに値を書き込むだけでレポートが完成
  • テンプレートに計算式を入れておけば自動計算される

例題③:Excelを設定ファイルとして使い、値を読み書きする

シナリオ

設定シートに「実行日」「担当者」を書き込みたい。

from openpyxl import load_workbook
from datetime import datetime

wb = load_workbook("config.xlsx")
ws = wb["設定"]

ws["B1"] = datetime.now()
ws["B2"] = "佐藤"

wb.save("config.xlsx")
Python

深掘りポイント

  • Excelを「設定ファイル」として使う運用は実務で非常に多い
  • Pythonから読み書きできるため柔軟性が高い

pathlib を使った読みやすいセル書き込みコード

Pathオブジェクトで直感的に書ける

from pathlib import Path
from openpyxl import load_workbook

path = Path("sample.xlsx")
wb = load_workbook(path)
ws = wb.active

ws["A1"] = "Hello"

wb.save(path)
Python

メリット

  • パス結合が / で直感的
  • 大規模プロジェクトでも保守性が高い

セル値書き込みを業務で設計するときの視点

  • openpyxl は「セル単位の書き込み」に最適
  • 数式を書き込むことで Excel 側に計算を任せられる
  • append() を使うと表形式のデータを簡単に書き込める
  • pandas と組み合わせると集計 → 書き込みが圧倒的に効率化
  • テンプレートExcelに値を埋め込むとレポート自動化が一気に進む

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