Adds a table to the worksheet at (row, col).
        Return the (row, col) where the table has been put.

        :param xltable.Table table: Table to add to the worksheet.
        :param int row: Row to start the table at (defaults to the next free row).
        :param int col: Column to start the table at.
        :param int row_spaces: Number of rows to leave between this table and the next.

def add_table(self, table, row=None, col=0, row_spaces=1):
        """
        Adds a table to the worksheet at (row, col).
        Return the (row, col) where the table has been put.

        :param xltable.Table table: Table to add to the worksheet.
        :param int row: Row to start the table at (defaults to the next free row).
        :param int col: Column to start the table at.
        :param int row_spaces: Number of rows to leave between this table and the next.
        """
        name = table.name
        assert name is not None, "Tables must have a name"
        assert name not in self.__tables, "Table %s already exists in this worksheet" % name
        if row is None:
            row = self.__next_row
        self.__next_row = max(row + table.height + row_spaces, self.__next_row)
        self.__tables[name] = (table, (row, col))
        return row, col