Home » Python » OpenPyXLの使い方 » 条件に一致する複数シートをOpenPyXLで削除するサンプル

条件に一致する複数シートをOpenPyXLで削除するサンプル

動作検証バージョン:Windows 10 Pro(64-bit)+ Python 3.11.1(64-bit) + OpenPyXL 3.0.10

「openpyxl シート削除 複数を一度に」
という検索キーワードで、このサイト『インストラクターのネタ帳』へアクセスがありました。

Office Open XML形式のファイルを操作するPythonのライブラリ「OpenPyXL」を使って、Excelファイルから複数シートをまとめて削除するには、どのようなコードを書けばいいのか調べていた方による検索です。

OpenPyXLを使って複数のワークシートを削除するサンプル

どのようなシートをまとめて削除したいのかがわかりませんので、ここでは特定の文字列がシート名に含まれているものを削除するスクリプトをご紹介します。

Cドライブのtempフォルダーにorg.xlsxファイルを置いて、以下のスクリプトを実行してください。

import openpyxl as xl

bk = xl.load_workbook(r'C:\temp\org.xlsx')

for ws in bk.worksheets:
    if 'tmp' in ws.title:
        bk.remove(ws)

bk.save(r'C:\temp\new.xlsx')

シート名に「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で削除するサンプル

「OpenPyXLの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.