Home » Python » xlwingsの使い方 » xlwingsでシートを削除する-Sheet.delete()メソッド

xlwingsでシートを削除する-Sheet.delete()メソッド

動作検証バージョン:Windows 10 + Python 3.7.3 + xlwings 0.15.5 + Excel 1903

「python excel ワークシート 削除 xlsx」
という検索キーワードをキッカケに、OpenPyXLを使ってExcelのシートを削除するコードについて書きました。

xlwingsを使った場合もご紹介しておきます。

[スポンサードリンク]

xlwingsでシートを削除するスクリプト

Cドライブのtempフォルダーに、複数のシートが存在するブックfoo.xlsxを用意して以下のスクリプトを実行すると、末尾のシートが削除されfoo2.xlsxとして保存されます。

import xlwings as xw

wb = xw.Book('C:\\temp\\foo.xlsx')

wb.sheets[-1].delete()

wb.save('C:\\temp\\foo2.xlsx')

OpenPyXLの場合Workbookオブジェクトのremove()メソッドでシートを削除できるのに対し、xlwingsの場合はSheetオブジェクトのdelete()メソッドです。

Excel VBAでは、WorksheetオブジェクトにDeleteメソッドが用意されているのと対応しています。

1枚しかないシートを削除しようとした場合

1枚しかシートが存在しないブックからシートを削除しようとしたときの挙動も、xlwingsの場合はExcelに準拠しています。

Excel VBAで1枚しかないシートを削除しようとした場合、下図のような実行時エラーが発生します。

xlwingsで、1枚しかないシートを削除しようとした場合も、

pywintypes.com_error: (-2147352567, '例外が発生しました。', (0, 'Microsoft Excel', 'ブックのシートをすべて削除または非表示にすることはできません。\n\n選択したシートを非表示、削除、または移動するには、まず新しいシートを挿入するか、非表示のシートを表示してください。', 'xlmain11.chm', 0, -2146827284), None)

といった例外が発生します。

最終更新日時:2023-02-08 11:03

[スポンサードリンク]

Home » Python » xlwingsの使い方 » xlwingsでシートを削除する-Sheet.delete()メソッド

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

検索


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

.