「openpyxl シート削除 複数を一度に」
という検索キーワードで、このサイト『インストラクターのネタ帳』へアクセスがありました。
Office Open XML形式のファイルを操作するPythonのライブラリ「OpenPyXL」を使って、Excelファイルから複数シートをまとめて削除するには、どのようなコードを書けばいいのか調べていた方による検索です。
OpenPyXLを使って複数のワークシートを削除するサンプル
どのようなシートをまとめて削除したいのかがわかりませんので、ここでは特定の文字列がシート名に含まれているものを削除するスクリプトをご紹介します。
Cドライブのtempフォルダーにorg.xlsxファイルを置いて、以下のスクリプトを実行してください。
bk = xl.load_workbook(r'C:\temp\org.xlsx')
for ws in bk.worksheets:
if 'tmp' in ws.title:
bk.remove(ws)
シート名に「tmp」が含まれているワークシートが削除されたnew.xlsxが、Cドライブtempフォルダーに作成されます。
サンプルスクリプトで行っている処理
Workbook.worksheets属性で取得できる、ブックに含まれる全ワークシートに対してfor文を回して、
for ws in bk.worksheets:
Worksheet.title属性で取得できるシート名に、文字列「tmp」が含まれているかを、拙著『VBAユーザーのためのPython超入門』の「7-5. str型のさまざまな操作」でもご紹介しているPythonのin演算子で調べ、
if 'tmp' in ws.title:
含まれている場合に、Workbook.removeメソッドで削除しています。
bk.remove(ws)
最終更新日時:2023-01-03 10:07
Home » Python » OpenPyXLの使い方 » 条件に一致する複数シートをOpenPyXLで削除するサンプル