Python 業務自動化 | Excel業務自動化:Excel基本操作 - Excel保存

Python Python
スポンサーリンク

Excel保存は「作ったExcelを確実に残し、業務自動化を完成させる」ための最重要ステップ

PythonでExcelを操作する際、保存処理(save)は必ず最後に必要になります。
どれだけセル操作・書式設定・データ加工をしても、保存しなければExcelに反映されません。

初心者がつまずきやすいポイントでもあるため、
ここでは 基本 → 応用 → 実務テンプレート の順で丁寧に解説します。


基本:Excelを保存する(最もシンプル)

既存ファイルを上書き保存する

from openpyxl import load_workbook

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

# 何か操作した後…
ws["A1"].value = "Hello Excel"

wb.save("sample.xlsx")
Python

深掘りポイント

  • wb.save("sample.xlsx") を実行した瞬間にファイルが更新される
  • ファイル名を同じにすると上書き保存
  • Excelを開いたままだと保存できないので注意
  • 保存し忘れると変更がすべて消えるため、最後に必ず書く

別名で保存する(バックアップ・テンプレート運用に便利)

sample.xlsx → sample_output.xlsx として保存

wb.save("sample_output.xlsx")
Python

深掘りポイント

  • 元ファイルを壊したくないときに必須
  • テンプレートを読み込んで別名保存するのが実務で最も多い
  • 「入力用テンプレート → 出力ファイル」の流れが作れる

新規ファイルとして保存する(空のExcelを作る)

Workbook() から新規作成して保存

from openpyxl import Workbook

wb = Workbook()
ws = wb.active

ws["A1"].value = "新規ファイルです"

wb.save("newfile.xlsx")
Python

深掘りポイント

  • 新しいExcelを自動生成できる
  • レポート自動作成・帳票生成でよく使う

保存前にフォルダを自動作成する(実務で非常に便利)

Pythonはフォルダが存在しないと保存できません。
そのため、保存前にフォルダを作る処理を入れると安全です。

フォルダを作ってから保存する

import os
from openpyxl import load_workbook

os.makedirs("output", exist_ok=True)

wb = load_workbook("sample.xlsx")
wb.save("output/result.xlsx")
Python

深掘りポイント

  • exist_ok=True でフォルダがあってもエラーにならない
  • 自動レポート生成で必須のテクニック
  • 保存先を整理しやすくなる

pathlib を使った保存(最も読みやすい書き方)

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

from pathlib import Path
from openpyxl import load_workbook

path = Path("output.xlsx")
wb = load_workbook("sample.xlsx")

wb.save(path)
Python

深掘りポイント

  • / でパス結合できるためコードが美しい
  • 大規模プロジェクトでよく使われる

保存時に上書き確認を入れる(安全性UP)

上書きされると困る場合のチェック

import os
from openpyxl import load_workbook

output = "report.xlsx"

if os.path.exists(output):
    print("既にファイルがあります。別名で保存してください。")
else:
    wb = load_workbook("template.xlsx")
    wb.save(output)
Python

深掘りポイント

  • 誤って上書きする事故を防げる
  • 業務で重要な帳票を扱うときに役立つ

例題①:テンプレートを読み込み、加工して別名保存する

シナリオ

template.xlsx を読み込み、A1 に日付を書き込み、report.xlsx として保存

from openpyxl import load_workbook
from datetime import datetime

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

ws["A1"].value = datetime.now().strftime("%Y-%m-%d")

wb.save("report.xlsx")
Python

解説

  • テンプレート運用の基本パターン
  • 日付入りレポートを自動生成できる

例題②:処理結果を output フォルダに保存する

import os
from openpyxl import load_workbook

os.makedirs("output", exist_ok=True)

wb = load_workbook("data.xlsx")
ws = wb.active

ws["B2"].value = "処理完了"

wb.save("output/data_processed.xlsx")
Python

解説

  • フォルダ作成 → 保存の流れは実務で非常に多い
  • 自動化スクリプトの基本構造

例題③:複数ファイルを読み込み、まとめて保存する

from openpyxl import load_workbook

files = ["a.xlsx", "b.xlsx", "c.xlsx"]

for f in files:
    wb = load_workbook(f)
    ws = wb.active

    ws["A1"].value = "処理済み"

    wb.save(f.replace(".xlsx", "_done.xlsx"))
Python

解説

  • バッチ処理(大量ファイルの自動処理)に最適
  • 保存名を自動で変えることで上書きを防げる

Excel保存を業務で設計するときの視点

  • 上書き保存か、別名保存かを明確にする
  • テンプレート運用では「読み込み → 別名保存」が基本
  • フォルダ作成を自動化するとエラーが減る
  • pathlib を使うとコードが読みやすくなる
  • 保存し忘れは致命的なので、最後に必ず save を書く

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