'Columns can be set by field name, e.g., Datasheet.date = [...].'

def __setattr__(self, k, v):

    if (k in self.__dict__):
        self.__dict__[k] = v
        return
    if (k == 'rows'):
        self._set_rows(v)
        return
    if (k == 'columns'):
        self._set_columns(v)
        return
    if (k == 'headers'):
        self._set_headers(v)
        return
    for (i, f) in enumerate((f[0] for f in (self.__dict__['fields'] or []))):
        if (f == k):
            self.__dict__['_columns'].__setitem__(i, v)
            return
    raise AttributeError(("'Datasheet'    object    has    no    attribute    '%s'" % k))
