'Set columns from header names, handling multicolumns appropriately.'

def _set_cols_from_names(self):

    self.cols = []
    new_names = []
    for name in self.names:
        if isinstance(name, tuple):
            col = core.Column(name=name[0])
            col.colspan = int(name[1])
            self.cols.append(col)
            new_names.append(name[0])
            for i in range(1, int(name[1])):
                self.cols.append(core.Column(''))
                new_names.append('')
        else:
            self.cols.append(core.Column(name=name))
            new_names.append(name)
    self.names = new_names
