/** * @param Worksheet $worksheet * @param array $style_h2 * @return Worksheet * @throws \PHPExcel_Exception */ public function exportExcel(Worksheet $worksheet, array $style_h2) { $last_row = $worksheet->getHighestDataRow(); $last_row += 2; $max_col = $worksheet->getHighestDataColumn(); $worksheet->mergeCells("A{$last_row}:{$max_col}{$last_row}"); $worksheet->setCellValue("A{$last_row}", utf8_encode($this->getTitulo())); $worksheet->getStyle("A{$last_row}:{$max_col}{$last_row}")->applyFromArray($style_h2); $worksheet->getRowDimension($last_row)->setRowHeight(20); $last_row += 2; $worksheet->setCellValue("C{$last_row}", utf8_encode('Opción')); $worksheet->setCellValue("D{$last_row}", 'Votos'); $first_row = $last_row; $last_row += 1; foreach ($this->getDatos() as $key => $dato) { $worksheet->setCellValue("B{$last_row}", $key + 1); $worksheet->setCellValue("C{$last_row}", utf8_encode($dato[0])); if (mb_strlen($dato[0]) > 45) { $worksheet->getRowDimension($last_row)->setRowHeight(27); } $worksheet->setCellValue("D{$last_row}", $dato[1]); $last_row++; } $last_row -= 1; $worksheet->getStyle("C{$first_row}:D{$last_row}")->applyFromArray($this->getEstiloTabla('center', true)); $first_row++; $worksheet->getStyle("B{$first_row}:D{$last_row}")->applyFromArray($this->getEstiloTabla()); $first_row -= 1; $top_chart = $first_row - 1; $bottom_chart = $first_row + 12; $chart1 = $this->getChart($first_row, $last_row, $top_chart, $bottom_chart); $worksheet->addChart($chart1); $worksheet->setCellValue("A{$bottom_chart}", ""); return $worksheet; }
/** * @return array[array] */ protected function readRowsNumeric(ExcelSheet $excelSheet, $minRow, $maxRow = NULL) { $data = array(); $nullValue = NULL; $maxCell = h::getColumnIndex($excelSheet->getHighestDataColumn()); $emptyRow = array_fill(0, $maxCell, $nullValue); foreach ($excelSheet->getRowIterator($minRow) as $rowNum => $wsRow) { if ($maxRow !== NULL && $rowNum > $maxRow) { break; } $row = array(); foreach ($wsRow->getCellIterator() as $cell) { $cellIndex = h::getColumnIndex($cell->getColumn()); $isEmpty = TRUE; $row[$cellIndex] = $this->readValue($cell, $isEmpty, $nullValue); } ksort($row); $data[$rowNum] = array_replace($emptyRow, $row); } return $data; }
protected function setHeader(PHPExcel_Worksheet $activeSheet, $headers, $rightColumn = null) { if (null === $rightColumn) { $rightColumn = $activeSheet->getHighestDataColumn(); } $i = 8; foreach ($headers as $title => $value) { $activeSheet->setCellValue('A' . $i, $title)->setCellValue($rightColumn . $i, $value); $i++; } $this->formatHeader($activeSheet, 'A', '8', $rightColumn, $i - 1); return $rightColumn; }
/** * Checks to see if the sheet is empty. * * @param \PHPExcel_Worksheet $sheet The PHPExcel sheet to check. * * @return bool Returns TRUE if the sheet is empty, else FALSE. */ private static function sheetIsEmpty(\PHPExcel_Worksheet $sheet) : bool { return $sheet->getHighestDataRow() === 1 && $sheet->getHighestDataColumn() === 'A' && $sheet->getCell('A1')->getValue() === null; }