private function renderRows(IO $io, array $rows, array $columnLengths, $excessColumnLength, $indentation)
{
$alignments = $this->style->getColumnAlignments(count($columnLengths));
$borderStyle = $this->style->getBorderStyle();
$borderColumnLengths = array_map(function ($length) use($excessColumnLength) {
return $length + $excessColumnLength;
}, $columnLengths);
BorderUtil::drawTopBorder($io, $borderStyle, $borderColumnLengths, $indentation);
if ($this->headerRow) {
BorderUtil::drawRow($io, $borderStyle, array_shift($rows), $columnLengths, $alignments, $this->style->getHeaderCellFormat(), $this->style->getHeaderCellStyle(), $this->style->getPaddingChar(), $indentation);
BorderUtil::drawMiddleBorder($io, $borderStyle, $borderColumnLengths, $indentation);
}
foreach ($rows as $row) {
BorderUtil::drawRow($io, $borderStyle, $row, $columnLengths, $alignments, $this->style->getCellFormat(), $this->style->getCellStyle(), $this->style->getPaddingChar(), $indentation);
}
BorderUtil::drawBottomBorder($io, $borderStyle, $borderColumnLengths, $indentation);
}