【Python×Excel操作】加工済みデータのExcelファイル出力(保存)方法

システム開発
このサイトはアフィリエイト広告を掲載しています。

この記事のレベル

難易度1.5
実用性4.5
学習コスト2.0
この記事でわかること
  • PythonでExcelファイルを保存する方法
  • 出力ファイル名を動的に付ける方法(例:日付+店舗名)
takata
takata

この記事はこんな人におすすめ!

  • Python初心者で、Excel業務を自動化したい方
  • 加工済みデータをExcelに出力(保存)したい方

はじめに

PythonでExcelファイルを操作できるようになると、日々のルーチン業務を自動化したり、作業時間を大幅に短縮したりすることができます。

たとえば、以下のような業務フローがPythonコードで簡単に実現できます。

  1. 売上管理表(Excelファイル)を読み込み
  2. 特定の店舗(例:東京店)のデータを抽出
  3. 抽出結果に合計行やコメントなどを書き込み
  4. 日付付きファイル名で新しいExcelファイルを出力

今回は、実際に「東京店の売上データを抽出・加工してレポートを自動作成する」例を交えながら、PythonでExcelファイルを操作する方法を4つの記事に分けて説明します。

本記事ではこの中から、Leeson 4 加工済みデータのExcelファイル出力方法について詳しく紹介します。

まずは全体のコードを確認しよう

まずは、Lesson1~4で学ぶコードの全体像を把握しましょう。以下のコードによりExcelの読み込みから加工、保存までを一気に自動化することができます。

とはいえ、はじめて見ると「何をやっているのかよくわからない…」と感じる方もいると思います。

次の章で加工済みデータのExcelファイル出力方法について詳しく紹介していきますのでご安心を!

import openpyxl
from openpyxl import Workbook
from datetime import date

# ----------------------------------------
# Lesson 1:Excelファイルの読み込み
# ----------------------------------------
wb = openpyxl.load_workbook("zenkoku_sales_data.xlsx")
ws = wb.active

# ----------------------------------------
# Lesson 2:条件を満たすデータの抽出
# (ヘッダー行:3行目、データ:4行目~)
# ----------------------------------------
header = [cell.value for cell in ws[3]]  # 3行目のヘッダー取得
filtered_rows = []

for row in ws.iter_rows(min_row=4, values_only=True):  # データは4行目以降
    if row[1] == "東京店":  # B列(店舗名)が「東京店」
        filtered_rows.append(list(row))  # 値をリスト形式で保存

# ----------------------------------------
# Lesson 3:データの整形とシートへの書き込み
# (備考列、合計行の追加/Excelシートへ書き込み)
# ----------------------------------------
# 備考列の追加
header.append("備考")
for row in filtered_rows:
    row.append("")  # 備考欄は空欄

# 合計計算
total_quantity = sum(row[3] for row in filtered_rows)  # D列:売上数量
total_amount = sum(row[4] for row in filtered_rows)    # E列:売上金額

# 合計行の追加
filtered_rows.append(["", "東京店", "合計", total_quantity, total_amount, "自動集計行"])

# 新しいブックとシート作成
new_wb = Workbook()
new_ws = new_wb.active
new_ws.title = "東京店レポート"

# ヘッダー行の書き込み
new_ws.append(header)

# データ行の書き込み
for row in filtered_rows:
    new_ws.append(row)

# ----------------------------------------
# Lesson 4:Excelファイルの出力(保存処理)
# ----------------------------------------
today = date.today().strftime("%Y%m%d")
store_name = "東京店"
filename = f"{today}_{store_name}_sales_data.xlsx"

new_wb.save(filename)

print(f"レポートを保存しました: {filename}")

Excelファイルの出力(保存)方法

Lesson 2 では、「東京店」のデータだけを抽出し filtered_rows に格納し、Lesson 3 では、その抽出結果に備考列と合計行を追加し、新しい Excel シートにデータを書き込みました。

そして Lesson 4 では、その新しいブック(new_wb)を実際のExcelファイルとして保存する方法を解説します。

Excelファイルを出力(保存)する基本コード

today = date.today().strftime("%Y%m%d")
store_name = "東京店"
filename = f"{today}_{store_name}_sales_data.xlsx"

new_wb.save(filename)

print(f"レポートを保存しました: {filename}")

ファイル名を付ける準備をしよう

today = date.today().strftime("%Y%m%d")
store_name = "東京店"
filename = f"{today}_{store_name}_sales_data.xlsx"
  • このコードでは、20250515_東京店_sales_data.xlsx といった指定のファイル名を filename という変数に代入しています。
  • date.today().strftime("%Y%m%d") によって、今日の日付を「20250515」などの形式で取得します。
  • "東京店" という店舗名と組み合わせて、ファイル名を自動生成しています。

ファイル名を付けExcelファイルを保存しよう

new_wb.save(filename)
  • このコードでは、Workbook() で作成しておいた new_wb を、指定したファイル名で保存します。
  • 保存場所は、このPythonファイルを実行したディレクトリになります。
  • 同名のファイルが存在する場合は上書きされるので注意してください。

まとめ

Lesson 4では、加工したデータを新しいExcelファイルとして保存する方法を紹介しました。ファイル名に日付や店舗名を含めることで、報告書としての実用性もアップします。

これでLesson 1〜4までの一連の処理が完成です!
日々のExcel業務の自動化にもすぐ活用できますので、ぜひ実務にも取り入れてみてください。

さらに学びたい方へ

「ワンランク上のビジネススキルを身につけたい」

そんな方に注目されているのが、オンライン学習サービスです。

中でも特におすすめなのが、人気の2大サービスSchoo(スクー) Udemy(ユーデミー) icon

特徴や違いを比較しながら、あなたに合った選び方をわかりやすく解説します。

SchooとUdemyの特徴は?

あなたに向いているのはSchoo?Udemy?

Schoo(スクー)がおすすめな人
  • まずは無料で試してみたい人
  • 月額定額で色んな講座を受けたい人
  • ビジネススキル全般を学びたい人
  • 隙間時間でスキルアップしたい人
\ Schooプレミアム 7日間お試し”無料” /

Udemy(ユーデミー)がおすすめな人
  • 講座単位で支払いをしたい人
  • 特定の知識・スキルを学びたい人
  • 学習の時間を集中的に確保できる人
\ 購入後30日以内であれば”返金可能” /

コメント