Exemplo n.º 1
0
 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();
 }
Exemplo n.º 2
0
 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);
 }