code: func (t *Table) printCellValue(result io.Writer, transformer rowTransformer, col, last int, value string) error {
  	value = trim(transformer.Transform(col, trim(value)))
  	fmt.Fprint(result, value)
  
  	// Pad all columns, but the last in this row (with the size of
  	// the header row limiting this). This ensures that most of
  	// the irrelevant spacing is not printed. At the moment
  	// irrelevant spacing can only occur when printing a row with
  	// multi-line cells, introducing a physical short line for a
  	// long logical row. Getting rid of that requires fixing in
  	// printRow.
  	//
  	//  Note how the inter-column spacing is also irrelevant for
  	//  that last column.
  
  	if col < last {
  		// (**) See also 'calculateMaxSize' (cMS). Here and
  		// there we have to apply identical transformations to
  		// the cell value to get matching cell width
  		// information. If they do not match then we may here
  		// compute a cell width larger than the max width
  		// found by cMS, derive a negative padding length from
  		// that, and subsequently return an error. What was
  		// further missing is trimming before entering the
  		// user-transform. Especially with color transforms
  		// any trailing space going in will not be removable
  		// for print.
  		//
  		// This happened for
  		// https://www.pivotaltracker.com/n/projects/892938/stories/117404629
  
  		decolorizedLength, err := visibleSize(trim(Decolorize(value)))
  		if err != nil {
  			return err
  		}
  		padlen := t.columnWidth[col] - decolorizedLength
  		padding := strings.Repeat(" ", padlen)
  		fmt.Fprint(result, padding)
  		fmt.Fprint(result, t.colSpacing)
  	}
  	return nil
  }
docs: // printCellValue pads the specified string to the width of the given
  // column, adds the spacing bewtween columns, and returns the result.