Table
- class Table(*args, **options)
The table object is a member of the
tablescollection:>>> import xlwings as xw >>> sheet = xw.books['Book1'].sheets[0] >>> sheet.tables[0] # or sheet.tables['TableName'] <Table 'Table 1' in Sheet1>
Added in version 0.21.0.
- property data_body_range: Range | None
Returns an xlwings range object that represents the range of values, excluding the header row
- property header_row_range: Range | None
Returns an xlwings range object that represents the range of the header row
- property insert_row_range: Range | None
Returns an xlwings range object representing the row where data is going to be inserted. This is only available for empty tables, otherwise it’ll return
None
- property parent: Sheet
Returns the parent of the table.
- property range: Range
Returns an xlwings range object of the table.
- property show_autofilter: bool
Turn the autofilter on or off by setting it to
TrueorFalse(read/write boolean)
- property show_table_style_column_stripes: bool
Returns or sets if the Column Stripes table style is used for (read/write boolean)
- property show_table_style_first_column: bool
Returns or sets if the first column is formatted (read/write boolean)
- property show_table_style_last_column: bool
Returns or sets if the last column is displayed (read/write boolean)
- property show_table_style_row_stripes: bool
Returns or sets if the Row Stripes table style is used (read/write boolean)
- property totals_row_range: Range | None
Returns an xlwings range object representing the Total row
- update(data, index=True)
Updates the Excel table with the provided data. Currently restricted to DataFrames.
Changed in version 0.24.0.
- Parameters:
data (Any) – Currently restricted to pandas DataFrames.
index (bool) – Whether or not the index of a pandas DataFrame should be written to the Excel table.
- Return type:
Examples
import pandas as pd import xlwings as xw sheet = xw.Book('Book1.xlsx').sheets[0] table_name = 'mytable' # Sample DataFrame nrows, ncols = 3, 3 df = pd.DataFrame(data=nrows * [ncols * ['test']], columns=['col ' + str(i) for i in range(ncols)]) # Hide the index, then insert a new table if it doesn't exist yet, # otherwise update the existing one df = df.set_index('col 0') if table_name in [table.name for table in sheet.tables]: sheet.tables[table_name].update(df) else: mytable = sheet.tables.add(source=sheet['A1'], name=table_name).update(df)