class Tables(impl)#

A collection of all table objects on the specified sheet:

>>> import xlwings as xw
>>> xw.books['Book1'].sheets[0].tables
Tables([<Table 'Table1' in <Sheet [Book11]Sheet1>>,
        <Table 'Table2' in <Sheet [Book11]Sheet1>>])

New in version 0.21.0.

add(source=None, name=None, source_type=None, link_source=None, has_headers=True, destination=None, table_style_name='TableStyleMedium2')#

Creates a Table to the specified sheet.

  • source (xlwings range, default None) – An xlwings range object, representing the data source.

  • name (str, default None) – The name of the Table. By default, it uses the autogenerated name that is assigned by Excel.

  • source_type (str, default None) – This currently defaults to xlSrcRange, i.e. expects an xlwings range object. No other options are allowed at the moment.

  • link_source (bool, default None) – Currently not implemented as this is only in case source_type is xlSrcExternal.

  • has_headers (bool or str, default True) – Indicates whether the data being imported has column labels. Defaults to True. Possible values: True, FAlse, 'guess'

  • destination (xlwings range, default None) – Currently not implemented as this is used in case source_type is xlSrcExternal.

  • table_style_name (str, default 'TableStyleMedium2') – Possible strings: 'TableStyleLightN' (where N is 1-21), 'TableStyleMediumN' (where N is 1-28), 'TableStyleDarkN' (where N is 1-11)


Return type



>>> import xlwings as xw
>>> sheet = xw.Book().sheets[0]
>>> sheet['A1'].value = [['a', 'b'], [1, 2]]
>>> table = sheet.tables.add(source=sheet['A1'].expand(), name='MyTable')
>>> table
<Table 'MyTable' in <Sheet [Book1]Sheet1>>