Why it doesn't work?

作業のメモ、記録をブログに残しています。

Python openpyxlでエクセルファイルのシートを削除しようとすると警告が出る

www.whyit.work
の続きです。
前回はシートを追加したので、今回はシートの削除処理です。

import openpyxl
from openpyxl.styles import Font

book = openpyxl.Workbook()
sheet = book.active

sheet["A1"].value = "Name"
sheet['A1'].font = Font(size=14, bold=True, italic=True)
sheet["A2"].value = "Takashi"

book.create_sheet(title='work', index=1)
book.remove_sheet(book.get_sheet_by_name('work'))
book.save('test.xlsx')

これを実行すると、期待通り、"work"シートは作成されていないが、以下のような警告が出た。

test.py:13: DeprecationWarning: Call to deprecated function get_sheet_by_name (Use wb[sheetname]).
book.remove_sheet(book.get_sheet_by_name('work'))
test.py:13: DeprecationWarning: Call to deprecated function remove_sheet (Use wb.remove(worksheet) or del wb[sheetname]).
book.remove_sheet(book.get_sheet_by_name('work'))

ドキュメントを参照すると、どちらも廃止予定だそうなので、get_sheet_by_name()をwb[sheetname]に、remove_sheet()をremove()に置き換える必要があります。
book.remove_sheet(book.get_sheet_by_name('work'))
book.remove(book['work'])

これで、警告なく期待通りの動作が実行できました。ドキュメントはちゃんと読みましょう。。。