Home » Python » xlwingsの使い方 » xlwingsで全ワークシート名を取得する-Book.sheet_namesプロパティ

xlwingsで全ワークシート名を取得する-Book.sheet_namesプロパティ

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

「python xlwings シート名」
という検索キーワードでのアクセスに気が付きました。

詳細がわかりませんので、xlwingsを使った、特定のブックに含まれる全ワークシート名を、順番に取得するコードをご紹介しておきます。

[スポンサードリンク]

xlwingsで全ワークシート名をprintするスクリプト

以下のスクリプトを実行すると、Cドライブtempフォルダーのsample.xlsxブックの、全ワークシート名が出力されます。

import xlwings

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で全ワークシート名のリストを作成するサンプル

全ワークシート名を順番に出力するのではなく、リストとして取得したいのなら、以下のコードが参考になるでしょう。

import 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)

で済みましたが、リストにする分コードが増えています。

リスト内包表記を使う場合

ただし、リスト内包表記を使えば、以下のようなシンプルなコードで済みます。

import xlwings

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]

と定義されています。

最終更新日時:2023-04-12 16:20

[スポンサードリンク]

Home » Python » xlwingsの使い方 » xlwingsで全ワークシート名を取得する-Book.sheet_namesプロパティ

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

検索


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

.