「python xlwings シート名」
という検索キーワードでのアクセスに気が付きました。
詳細がわかりませんので、xlwingsを使った、特定のブックに含まれる全ワークシート名を、順番に取得するコードをご紹介しておきます。
xlwingsで全ワークシート名をprintするスクリプト
以下のスクリプトを実行すると、Cドライブtempフォルダーのsample.xlsxブックの、全ワークシート名が出力されます。
bk = xlwings.Book(r'C:\temp\sample.xlsx')
for sht in bk.sheets:
print(sht.name)
サンプルスクリプトで行っている処理
Book.sheetsプロパティで、取得したすべてのワークシートを表すSheetsコレクションに対して、for文を回して順番にSheetオブジェクトを取得して
for sht in bk.sheets:
Sheet.nameプロパティで取得したシート名を、Pythonの組み込み関数であるprintで出力しています。
print(sht.name)
xlwingsで全ワークシート名のリストを作成するサンプル
全ワークシート名を順番に出力するのではなく、リストとして取得したいのなら、以下のコードが参考になるでしょう。
bk = xlwings.Book(r'C:\temp\sample.xlsx')
sheet_names = []
for sht in bk.sheets:
sheet_names.append(sht.name)
print(sheet_names)
先ほどの、for文の中で随時printする場合は、
for sht in bk.sheets:
print(sht.name)
で済みましたが、リストにする分コードが増えています。
リスト内包表記を使う場合
ただし、リスト内包表記を使えば、以下のようなシンプルなコードで済みます。
bk = xlwings.Book(r'C:\temp\sample.xlsx')
sheet_names = [ sht.name for sht in bk.sheets ]
print(sheet_names)
v0.28.1 (Oct 10, 2022)以降ならBook.sheet_namesでOK
この記事はv0.15.5の時点で書いたものですが、2022年10月10日にリリースされた、v0.28.1以降ならば、Bookオブジェクトに用意されているsheet_namesプロパティで、ワークシート名一覧をリストの形で取得できます。
Book.sheet_namesプロパティは、xlwingsのmain.pyモジュールで
@property
def sheet_names(self):
return [sheet.name for sheet in self.sheets]
と定義されています。
- xlwingsのBook.apiを経由して全シート名を取得する
- OpenPyXLで全シート名を取得するget_sheet_names()使用時のDeprecationWarning
- xlrdで全シート名を取得する
- pandasでExcelの全シート名を取得する
最終更新日時:2023-04-12 16:20
- Newer:And条件の書き方
- Older:xlrdのnrows・ncolsは何を返すのか
Home » Python » xlwingsの使い方 » xlwingsで全ワークシート名を取得する-Book.sheet_namesプロパティ