Home » Python » xlwings » xlwingsでシートを削除する

xlwingsでシートを削除する

動作検証バージョン: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
wb = xlwings.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)

という例外が発生します。

最終更新日時:2019-04-26 12:15

[スポンサードリンク]

Home » Python » xlwings » xlwingsでシートを削除する

TrackBack:0

TrackBack URL

Home » Python » xlwings » xlwingsでシートを削除する

「xlwings」の記事一覧

検索


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

.