code: func (t *Table) printHeading() {
  	// Check if headers is available
  	if len(t.headers) < 1 {
  		return
  	}
  
  	// Identify last column
  	end := len(t.cs) - 1
  
  	// Get pad function
  	padFunc := pad(t.hAlign)
  
  	// Checking for ANSI escape sequences for header
  	is_esc_seq := false
  	if len(t.headerParams) > 0 {
  		is_esc_seq = true
  	}
  
  	// Maximum height.
  	max := t.rs[headerRowIdx]
  
  	// Print Heading
  	for x := 0; x < max; x++ {
  		// Check if border is set
  		// Replace with space if not set
  		fmt.Fprint(t.out, ConditionString(t.borders.Left, t.pColumn, SPACE))
  
  		for y := 0; y <= end; y++ {
  			v := t.cs[y]
  			h := ""
  			if y < len(t.headers) && x < len(t.headers[y]) {
  				h = t.headers[y][x]
  			}
  			if t.autoFmt {
  				h = Title(h)
  			}
  			pad := ConditionString((y == end && !t.borders.Left), SPACE, t.pColumn)
  
  			if is_esc_seq {
  				fmt.Fprintf(t.out, " %s %s",
  					format(padFunc(h, SPACE, v),
  						t.headerParams[y]), pad)
  			} else {
  				fmt.Fprintf(t.out, " %s %s",
  					padFunc(h, SPACE, v),
  					pad)
  			}
  		}
  		// Next line
  		fmt.Fprint(t.out, t.newLine)
  	}
  	if t.hdrLine {
  		t.printLine(true)
  	}
  }
docs: // Print heading information