'Reformat the EvCell with new options
Kwargs:
The available keyword arguments are the same as for `EvCell.__init__`.
Raises:
Exception: If the cells cannot shrink enough to accomodate
the options or the data given.'

def reformat(self, **kwargs):

    padwidth = kwargs.get('pad_width', None)
    padwidth = (int(padwidth) if (padwidth is not None) else None)
    self.pad_left = int(kwargs.pop('pad_left', (padwidth if (padwidth is not None) else self.pad_left)))
    self.pad_right = int(kwargs.pop('pad_right', (padwidth if (padwidth is not None) else self.pad_right)))
    self.pad_top = int(kwargs.pop('pad_top', (padwidth if (padwidth is not None) else self.pad_top)))
    self.pad_bottom = int(kwargs.pop('pad_bottom', (padwidth if (padwidth is not None) else self.pad_bottom)))
    self.enforce_size = kwargs.get('enforce_size', False)
    pad_char = kwargs.pop('pad_char', None)
    hpad_char = kwargs.pop('hpad_char', pad_char)
    self.hpad_char = (hpad_char[0] if hpad_char else self.hpad_char)
    vpad_char = kwargs.pop('vpad_char', pad_char)
    self.vpad_char = (vpad_char[0] if vpad_char else self.vpad_char)
    fillchar = kwargs.pop('fill_char', None)
    hfill_char = kwargs.pop('hfill_char', fillchar)
    self.hfill_char = (hfill_char[0] if hfill_char else self.hfill_char)
    vfill_char = kwargs.pop('vfill_char', fillchar)
    self.vfill_char = (vfill_char[0] if vfill_char else self.vfill_char)
    borderwidth = kwargs.get('border_width', None)
    self.border_left = kwargs.pop('border_left', (borderwidth if (borderwidth is not None) else self.border_left))
    self.border_right = kwargs.pop('border_right', (borderwidth if (borderwidth is not None) else self.border_right))
    self.border_top = kwargs.pop('border_top', (borderwidth if (borderwidth is not None) else self.border_top))
    self.border_bottom = kwargs.pop('border_bottom', (borderwidth if (borderwidth is not None) else self.border_bottom))
    borderchar = kwargs.get('border_char', None)
    self.border_left_char = kwargs.pop('border_left_char', (borderchar if borderchar else self.border_left_char))
    self.border_right_char = kwargs.pop('border_right_char', (borderchar if borderchar else self.border_right_char))
    self.border_top_char = kwargs.pop('border_topchar', (borderchar if borderchar else self.border_top_char))
    self.border_bottom_char = kwargs.pop('border_bottom_char', (borderchar if borderchar else self.border_bottom_char))
    corner_char = kwargs.get('corner_char', None)
    self.corner_top_left_char = kwargs.pop('corner_top_left', (corner_char if (corner_char is not None) else self.corner_top_left_char))
    self.corner_top_right_char = kwargs.pop('corner_top_right', (corner_char if (corner_char is not None) else self.corner_top_right_char))
    self.corner_bottom_left_char = kwargs.pop('corner_bottom_left', (corner_char if (corner_char is not None) else self.corner_bottom_left_char))
    self.corner_bottom_right_char = kwargs.pop('corner_bottom_right', (corner_char if (corner_char is not None) else self.corner_bottom_right_char))
    self.trim_horizontal = kwargs.pop('trim_horizontal', self.trim_horizontal)
    self.trim_vertical = kwargs.pop('trim_vertical', self.trim_vertical)
    for (key, value) in kwargs.items():
        setattr(self, key, value)
    if ('width' in kwargs):
        width = kwargs.pop('width')
        self.width = (((((width - self.pad_left) - self.pad_right) - self.border_left) - self.border_right) + self.trim_horizontal)
        if (self.width <= 0 < self.raw_width):
            raise Exception('Cell    width    too    small,    no    room    for    data.')
    if ('height' in kwargs):
        height = kwargs.pop('height')
        self.height = (((((height - self.pad_top) - self.pad_bottom) - self.border_top) - self.border_bottom) + self.trim_vertical)
        if (self.height <= 0 < self.raw_height):
            raise Exception('Cell    height    too    small,    no    room    for    data.')
    self.formatted = self._reformat()
