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ファイルを提出前に自動整理する処理を組み込めば、作業の抜け漏れ防止や業務効率化に大いに貢献できます。