Pythonで作業用Excelシートを一括削除する方法|openpyxlで業務ファイルをスリム化

Excelファイルを扱っていると、確認用・検証用に「作業用_○○」のような一時シートを作成することがよくあります。しかし最終的に提出や保存を行う際には、こうした作業用シートを削除しておきたい場面が多々あります。

本記事では、Pythonライブラリ「openpyxl」を使用して、特定の名前パターン(例:「作業用_」で始まる)を持つExcelシートを一括で削除する方法をご紹介いたします。


目次

前提条件

以下のライブラリがインストールされていることを前提とします。

pip install openpyxl

処理の目的

  • 「業務管理_確認版.xlsx」というExcelファイルに対して、
  • 名前が「作業記録_」で始まるシートを自動で判定・削除
  • 新しいファイル名で保存(元のファイルは保持)

コード例:特定プレフィックスを持つシートを一括削除

from openpyxl import load_workbook

# 元のブックを読み込み
book = load_workbook("業務管理_確認版.xlsx")

# 削除対象のシートを順に確認
for sheet in book.worksheets[:]:  # 安全な削除のため、スライスでコピー
    if sheet.title.startswith("作業記録_"):
        book.remove(sheet)

# 結果を別名で保存
book.save("業務管理_整理済.xlsx")

解説:ポイントと注意点

  • startswith()を使えば、「名前の先頭に特定文字列があるか」を簡単に判定できます。
  • for sheet in book.worksheets[:]のように、スライスでコピーを使うことで、ループ中でも安全に要素を削除できます。
  • 元ファイルと上書きせず、別ファイルに保存することで万が一に備えた運用が可能です。

応用例

  • "temp_"で始まる検証用シートを削除
  • "debug_""旧_"といったプレフィックスにも応用可能
  • 削除対象のログを別ファイルに保存しておくことも可能です

まとめ

本記事では、Pythonとopenpyxlを使って、**「特定の名前パターンに該当するシートを一括削除する方法」**をご紹介いたしました。Excelファイルを提出前に自動整理する処理を組み込めば、作業の抜け漏れ防止や業務効率化に大いに貢献できます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次