예제 #1
0
파일: Writer.php 프로젝트: ymnl007/Clerk
 /**
  * @param WorkbookInterface $workbook
  *
  * @return \PHPExcel
  */
 protected function convertToDriver(WorkbookInterface $workbook)
 {
     $styleWriter = new StyleWriter();
     /*
      * FIND DRIVER
      */
     $driver = $workbook->getDriver();
     /*
      * WORKBOOK STYLES
      */
     if ($workbook->hasStyles()) {
         $styles = $styleWriter->convert($workbook->getStyles());
         $driver->getDefaultStyle()->applyFromArray($styles);
     }
     /*
      * WORKBOOK SHEETS
      */
     foreach ($workbook->getSheets() as $sheet) {
         $driverWorksheet = $sheet->getDriver();
         /*
          * WORKSHEET STYLES
          */
         if ($sheet->hasStyles()) {
             $styles = $styleWriter->convert($sheet->getStyles());
             $driverWorksheet->getDefaultStyle()->applyFromArray($styles);
         }
         /*
          * CELLS
          */
         $cellWriter = new CellWriter($driverWorksheet);
         // Add sheet to workbook
         $driver->addSheet($driverWorksheet);
         // Add cells
         foreach ($sheet->getCells() as $cell) {
             $cellWriter->write($cell);
         }
         // Merge given cells
         foreach ($sheet->getMergeCells() as $range) {
             $driverWorksheet->mergeCells($range);
         }
     }
     // Rewind
     $driver->setActiveSheetIndex(0);
     return $driver;
 }