'Add a column to the table.
Arguments:
fieldname - name of the field to contain the new column of data
column - column of data, should be a list with as many elements as the
table has rows
align - desired alignment for this column - "l" for left, "c" for centre and "r" for right
valign - desired vertical alignment for new columns - "t" for top, "m" for middle and "b" for bottom'

def add_column(self, fieldname, column, align='c', valign='t'):

    if (len(self._rows) in (0, len(column))):
        self._validate_align(align)
        self._validate_valign(valign)
        self._field_names.append(fieldname)
        self._align[fieldname] = align
        self._valign[fieldname] = valign
        for i in range(0, len(column)):
            if (len(self._rows) < (i + 1)):
                self._rows.append([])
            self._rows[i].append(column[i])
    else:
        raise Exception(('Column    length    %d    does    not    match    number    of    rows    %d!' % (len(column), len(self._rows))))
