private function writeFullLabel(array $values, PHPExcel_Worksheet $phpExcelWorksheet, Coordinate $coordinate) { for ($i = 0; $i < 2; $i++) { if (0 === $i) { $coordinate->setXAxis($coordinate->getOriginalXAxis() + 1); } elseif (1 === $i) { $coordinate->resetXAxis(); $coordinate->setYAxis($coordinate->getOriginalYAxis() + 1); } $lengthSide = count($values[$i]); for ($j = 0; $j < $lengthSide; $j++) { $this->cellWorker->writeCell($values[$i][$j], $phpExcelWorksheet, $coordinate); if (0 === $i) { $coordinate->nextXAxis(); } elseif (1 === $i) { $coordinate->nextYAxis(); } } } $coordinate->setOriginalXAxis($coordinate->getOriginalXAxis() + 1)->setOriginalYAxis($coordinate->getOriginalYAxis() + 1)->resetYAxis()->resetXAxis(); }
public function writeCell(CellInterface $cell, PHPExcel_Worksheet $phpExcelWorksheet, Coordinate $coordinate) { if ($cell->hasStyles()) { $styles = $this->styleWorker->convertStyles($cell->getStyles()); if (!empty($styles)) { $phpExcelWorksheet->getStyleByColumnAndRow($coordinate->getXAxis() - 1, $coordinate->getYAxis())->applyFromArray($styles); } } if ($cell instanceof EmptyCell) { return; } $styleCollection = $cell->getStyles(); $value = $cell->getValue(); if (!empty($styleCollection)) { try { switch ($styleCollection->getElement(new Format())->getFormat()) { case Format::TYPE_NUMERIC: $phpExcelWorksheet->getStyleByColumnAndRow($coordinate->getXAxis() - 1, $coordinate->getYAxis())->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER); $phpExcelWorksheet->setCellValueExplicitByColumnAndRow($coordinate->getXAxis() - 1, $coordinate->getYAxis(), (int) $value, PHPExcel_Cell_DataType::TYPE_NUMERIC); return; break; case Format::TYPE_NUMERIC_00: $phpExcelWorksheet->getStyleByColumnAndRow($coordinate->getXAxis() - 1, $coordinate->getYAxis())->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_NUMBER_00); $phpExcelWorksheet->setCellValueExplicitByColumnAndRow($coordinate->getXAxis() - 1, $coordinate->getYAxis(), (double) $value, PHPExcel_Cell_DataType::TYPE_NUMERIC); return; break; case Format::TYPE_PERCENT_00: $phpExcelWorksheet->getStyleByColumnAndRow($coordinate->getXAxis() - 1, $coordinate->getYAxis())->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_PERCENTAGE_00); $phpExcelWorksheet->setCellValueExplicitByColumnAndRow($coordinate->getXAxis() - 1, $coordinate->getYAxis(), (double) $value, PHPExcel_Cell_DataType::TYPE_NUMERIC); return; break; case Format::TYPE_PERCENT: $phpExcelWorksheet->getStyleByColumnAndRow($coordinate->getXAxis() - 1, $coordinate->getYAxis())->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_PERCENTAGE); $phpExcelWorksheet->setCellValueExplicitByColumnAndRow($coordinate->getXAxis() - 1, $coordinate->getYAxis(), (double) $value, PHPExcel_Cell_DataType::TYPE_NUMERIC); return; break; case Format::TYPE_DATE: $phpExcelWorksheet->getStyleByColumnAndRow($coordinate->getXAxis() - 1, $coordinate->getYAxis())->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_DDMMYYYY); break; case Format::TYPE_DATETIME: $phpExcelWorksheet->getStyleByColumnAndRow($coordinate->getXAxis() - 1, $coordinate->getYAxis())->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_DATE_DATETIME); break; } } catch (\OutOfBoundsException $e) { } } $phpExcelWorksheet->setCellValueExplicitByColumnAndRow($coordinate->getXAxis() - 1, $coordinate->getYAxis(), $value); }