動作検証バージョン:Windows 10 + Python 3.7.3 + xlrd 1.2.0
Excelデータを取得・操作するPythonのライブラリは、いくつも種類があります。
当然ライブラリごとに仕様が異なり、興味深く触っています。
xlrdの場合どのようなコードで、最後・右端のシートを取得できるのかが気になりました。
[スポンサードリンク]
Book.sheet_by_index()とBook.nsheetsを使って最後・右端のシートを取得する
xlrdの場合、以下のスクリプトを実行すると、Cドライブtempフォルダーに存在するfoo.xlsxブックの、最後・右端のシート名が出力されます。
import xlrd
bk = xlrd.open_workbook('C:\\temp\\foo.xlsx')
sh = bk.sheet_by_index(wb.nsheets - 1)
print(sh.name)
bk = xlrd.open_workbook('C:\\temp\\foo.xlsx')
sh = bk.sheet_by_index(wb.nsheets - 1)
print(sh.name)
Book.nsheetsでブックに含まれるシートの枚数を取得できます。
取得したシート枚数から「- 1」した値をBook.sheet_by_index()の引数に指定して、Sheetを取得しています。
Book.sheets()で返されたリストから最後・右端のシートを取得する
以下のようなスクリプトでも、Cドライブtempフォルダーに存在するfoo.xlsxブックの、最後・右端のシート名が出力されます。
import xlrd
bk = xlrd.open_workbook('C:\\temp\\foo.xlsx')
sh = bk.sheets()[-1]
print(sh.name)
bk = xlrd.open_workbook('C:\\temp\\foo.xlsx')
sh = bk.sheets()[-1]
print(sh.name)
Book.sheets()を使うと、ブックに含まれるシートのリストを取得できます。
取得したリストのインデックスに「-1」を指定して、最後・右端のシートを取得しています。
OpenPyXLのWorkbook.worksheets[-1]や、xlwingsのBook.sheets[-1]に似たコードではありますが、「.sheets」の直後に()が必須です。
sh = bk.sheets()[-1]
最終更新日時:2019-07-15 17:03
[スポンサードリンク]
- Newer:OpenPyXLを使ってExcelをCSVに変換する
- Older:pandasでExcelをCSVに変換する