Home » Python » xlwings » xlwingsで全シート名を取得する

xlwingsで全シート名を取得する

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

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

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

[スポンサードリンク]

xlwingsで全シート名をprintするサンプル

以下のスクリプトを実行すれば、Cドライブtempフォルダーのfoo.xlsxブックの、全シートの名前が出力される様子を確認できます。


import xlwings
bk = xlwings.Book('C:\\temp\\foo.xlsx')
for sh in bk.sheets:
    print(sh.name)

xlwingsで全シート名を取得するサンプルで行っている処理

Book.sheetsで、取得した全シートを表すsheetsコレクションに対して、for文を回して順番にsheetオブジェクトを取得して
  for sh in bk.sheets:

Sheet.nameで取得したシート名を、Pythonのprint()関数で出力しています。
      print(sh.name)

Excel VBAとの類似性

上述のコードは、当然Excel VBAの以下のようなコードとよく似ています。


Dim bk As Workbook
Set bk = Workbooks.Open("C:\temp\foo.xlsx")

Dim sh As Object
For Each sh in bk.Sheets
 Debug.Print sh.Name
Next sh

xlwingsで全シート名のリストを作成するサンプル

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


import xlwings
bk = xlwings.Book('C:\\temp\\foo.xlsx')

sheet_names = []
for sh in bk.sheets:
    sheet_names.append(sh.name)
print(sheet_names)

先述の、for文の中で随時printする場合は、
  for sh in bk.sheets:
      print(sh.name)
で済みましたが、リストにする分コードが増えています。

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

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


import xlwings
bk = xlwings.Book('C:\\temp\\foo.xlsx')
sheet_names = [ sh.name for sh in bk.sheets ]
print(sheet_names)

最終更新日時:2019-07-22 11:09

[スポンサードリンク]

Home » Python » xlwings » xlwingsで全シート名を取得する

TrackBack:0

TrackBack URL

Home » Python » xlwings » xlwingsで全シート名を取得する

「xlwings」の記事一覧

検索


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

.