/** * @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; }