Home » Python » xlwingsの使い方 » xlwingsでテーブル(ListObjectに相当するオブジェクト)を取得するーSheet.tablesプロパティ

xlwingsでテーブル(ListObjectに相当するオブジェクト)を取得するーSheet.tablesプロパティ

動作検証バージョン:Windows 11 Home(64-bit)+ 64bit Excel(バージョン2302 ビルド16130.20218 キック実行)+ Python 3.10.6(64-bit) + xlwings 0.29.1

「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フォルダーに置いてから、以下のスクリプトを実行してみてください。

import xlwings as xw

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

[スポンサードリンク]

Home » Python » xlwingsの使い方 » xlwingsでテーブル(ListObjectに相当するオブジェクト)を取得するーSheet.tablesプロパティ

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

検索


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

.