protected function generateGroupedRow($groupFooter, $groupedCol)
{
$endGroupedCol = 0;
$this->_groupedRow = [];
$fLine = ArrayHelper::getValue($this->_groupedColumn[$groupedCol], 'firstLine', -1);
$fLine = $fLine == $this->_beginRow ? $this->_beginRow + 1 : $fLine + 3;
$firstLine = $this->_endRow == $this->_beginRow + 3 && $fLine == 2 ? $this->_beginRow + 3 : $fLine;
$endLine = $this->_endRow + 1;
list($endLine, $firstLine) = $endLine > $firstLine ? [$endLine, $firstLine] : [$firstLine, $endLine];
foreach ($this->getVisibleColumns() as $key => $column) {
$value = isset($groupFooter[$key]) ? $groupFooter[$key] : '';
$endGroupedCol++;
$groupedRange = self::columnName($key + 1) . $firstLine . ":" . self::columnName($key + 1) . $endLine;
//$lastCell = self::columnName($key + 1) . $endLine - 1;
if (isset($column->group) && $column->group) {
$this->_objPHPExcelSheet->mergeCells($groupedRange);
}
switch ($value) {
case self::F_SUM:
$value = "=sum({$groupedRange})";
break;
case self::F_COUNT:
$value = '=countif(' . $groupedRange . ',"*")';
break;
case self::F_AVG:
$value = "=AVERAGE({$groupedRange})";
break;
case self::F_MAX:
$value = "=max({$groupedRange})";
break;
case self::F_MIN:
$value = "=min({$groupedRange})";
break;
}
if ($value instanceof \Closure) {
$value = call_user_func($value, $groupedRange, $this);
}
$this->_groupedRow[] = empty($value) ? '' : strip_tags($value);
}
}