Search code examples
pythonexcelexcel-2010xlwings

How to reference Excel table column names in XLWings?


Does XLWings allow my to interact with Excel tables (available in Excel 2007 and later via menu or ctrl+t) by table and column names? This does exist in the young, open sourceproject, Pyvot (https://pypi.python.org/pypi/Pyvot). I am hopeful that it is possible in XLWings now or that XLWings will add the functionality, Especially since this open source project is available as a model.

Here is an example from https://pythonhosted.org/Pyvot/tutorial.html. "Pyvot specifically recognizes column names from tables and auto-filters. Pyvot will search all tables in the workbook for a given column name." The example below will return values from visible cells from the City column to a list.

import xl
wb = xl.Workbook(r"c:\temp\cities.xlsx")
wb.get("City").get() #get the column named City

Solution

  • Square bracket access works, see e.g. here:

    For example to get the data of a specific column:

    import xlwings as xw
    wb = xw.Workbook.active()
    xw.Range('TableName[ColumnName]').value
    

    Or to get the column including header and Total row, you could do:

    xw.Range('TableName[[#All], [ColumnName]]').value