# Tables

### *class* Tables(impl)

A collection of all `table` objects on the specified sheet:

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

#### Versionadded
Added 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.

* **Parameters:**
  * **source** ([*Range*](range.md#xlwings.Range) *|* *None*) – An xlwings range object, representing the data source.
  * **name** (*str* *|* *None*) – The name of the Table. By default, it uses the autogenerated name that is
    assigned by Excel.
  * **source_type** (*str* *|* *None*) – This currently defaults to `xlSrcRange`, i.e. expects an xlwings range
    object. No other options are allowed at the moment.
  * **link_source** (*bool* *|* *None*) – Currently not implemented as this is only in case `source_type` is
    `xlSrcExternal`.
  * **has_headers** (*bool* *|* *str*) – Indicates whether the data being imported has column labels. Defaults to
    `True`. Possible values: `True`, `False`, `'guess'`
  * **destination** ([*Range*](range.md#xlwings.Range) *|* *None*) – Currently not implemented as this is used in case `source_type` is
    `xlSrcExternal`.
  * **table_style_name** (*str*) – Possible strings: `'TableStyleLightN'` (where N is 1-21),
    `'TableStyleMediumN'` (where N is 1-28),
    `'TableStyleDarkN'` (where N is 1-11)

### Examples

```pycon
>>> 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>>
```
