「xlwings listobjects」
という検索キーワードでアクセスがありました。
Excel VBAのListObjectはTableに相当
Excel VBAのListObjectsコレクションやListObjectオブジェクトに相当するオブジェクトが、xlwingsでは何なのかを調べていた方による検索でしょうか。
結論。
Excel VBAのListObjectsコレクションに相当するのがxlwingsのTablesコレクション、ListObjectオブジェクトに相当するのがTableオブジェクトです。
xlwings._xlwindows.pyモジュールのSheetクラスで、tablesプロパティは以下のように定義されており、
@property
def tables(self):
return Tables(xl=self.xl.ListObjects)
Excel VBAのListObjectsに相当することを読み取れます。
Tablesコレクション・Tableオブジェクトを取得するサンプル
1枚目のワークシートにテーブルが存在するsamp.xlsxブックをCドライブtempフォルダーに置いてから、以下のスクリプトを実行してみてください。
bk = xw.Book(r'c:\temp\samp.xlsx')
ws = bk.sheets[0]
print(ws.tables.count)
tbl = ws.tables[0]print(tbl.range.get_address(False, False)
1枚目のワークシートに存在するテーブルの個数と、1つ目のテーブルのセル範囲が出力されます。
サンプルスクリプトで行っている処理
xlwingsのSheetオブジェクトに用意されているtablesプロパティを使うと、
print(ws.tables.count)
1枚のワークシート上に存在する全テーブルを表す、Tablesコレクションを取得できます。
上記のスクリプトでは、取得したTablesコレクションのcountプロパティを使って取得できるテーブルの個数を出力しています。
print(ws.tables.count)
その後、1つ目のテーブルを表すTableオブジェクトを取得し、
tbl = ws.tables[0]
Table.rangeプロパティでテーブルのセル範囲を表すRangeオブジェクトを取得して、
print(tbl.range.get_address(False, False)
そのセル番地をget_address()メソッドで取得し、出力しています。
print(tbl.range.get_address(False, False)
最終更新日時:2023-04-24 14:28
- Newer:Windows11で時刻の秒を確認したいときに行っている操作
- Older:『Excel VBAユーザーのためのWord VBA入門(1)』が2023年4月の月替わりセールで半額の590円に
Home » Python » xlwingsの使い方 » xlwingsでテーブル(ListObjectに相当するオブジェクト)を取得するーSheet.tablesプロパティ