return array($value); } // Add some data $continentColumn = 'D'; $column = 'F'; // Set data for dropdowns foreach (glob('./data/continents/*') as $key => $filename) { $continent = pathinfo($filename, PATHINFO_FILENAME); echo "Loading {$continent}", EOL; $continent = str_replace(' ', '_', $continent); $countries = file($filename, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); $countryCount = count($countries); // Transpose $countries from a row to a column array $countries = array_map('transpose', $countries); $objPHPExcel->getActiveSheet()->fromArray($countries, null, $column . '1'); $objPHPExcel->addNamedRange(new PHPExcel\NamedRange($continent, $objPHPExcel->getActiveSheet(), $column . '1:' . $column . $countryCount)); $objPHPExcel->getActiveSheet()->getColumnDimension($column)->setVisible(false); $objPHPExcel->getActiveSheet()->setCellValue($continentColumn . ($key + 1), $continent); ++$column; } // Hide the dropdown data $objPHPExcel->getActiveSheet()->getColumnDimension($continentColumn)->setVisible(false); $objPHPExcel->addNamedRange(new PHPExcel\NamedRange('Continents', $objPHPExcel->getActiveSheet(), $continentColumn . '1:' . $continentColumn . ($key + 1))); // Set selection cells $objPHPExcel->getActiveSheet()->setCellValue('A1', 'Continent:'); $objPHPExcel->getActiveSheet()->setCellValue('B1', 'Select continent'); $objPHPExcel->getActiveSheet()->setCellValue('B3', '=' . $column . 1); $objPHPExcel->getActiveSheet()->setCellValue('B3', 'Select country'); $objPHPExcel->getActiveSheet()->getStyle('A1:A3')->getFont()->setBold(true); // Set linked validators $objValidation = $objPHPExcel->getActiveSheet()->getCell('B1')->getDataValidation();
date_default_timezone_set('Europe/London'); /** Include PHPExcel */ require_once dirname(__FILE__) . '/../src/Bootstrap.php'; // Create new PHPExcel object echo date('H:i:s'), " Create new PHPExcel object", EOL; $objPHPExcel = new \PHPExcel\Spreadsheet(); // Set document properties echo date('H:i:s'), " Set document properties", EOL; $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")->setLastModifiedBy("Maarten Balliauw")->setTitle("Office 2007 XLSX Test Document")->setSubject("Office 2007 XLSX Test Document")->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")->setKeywords("office 2007 openxml php")->setCategory("Test result file"); // Add some data echo date('H:i:s'), " Add some data", EOL; $objPHPExcel->setActiveSheetIndex(0); $objPHPExcel->getActiveSheet()->setCellValue('A1', 'Firstname:')->setCellValue('A2', 'Lastname:')->setCellValue('A3', 'Fullname:')->setCellValue('B1', 'Maarten')->setCellValue('B2', 'Balliauw')->setCellValue('B3', '=B1 & " " & B2'); // Define named ranges echo date('H:i:s'), " Define named ranges", EOL; $objPHPExcel->addNamedRange(new \PHPExcel\NamedRange('PersonName', $objPHPExcel->getActiveSheet(), 'B1')); $objPHPExcel->addNamedRange(new \PHPExcel\NamedRange('PersonLN', $objPHPExcel->getActiveSheet(), 'B2')); // Rename named ranges echo date('H:i:s'), " Rename named ranges", EOL; $objPHPExcel->getNamedRange('PersonName')->setName('PersonFN'); // Rename worksheet echo date('H:i:s'), " Rename worksheet", EOL; $objPHPExcel->getActiveSheet()->setTitle('Person'); // Create a new worksheet, after the default sheet echo date('H:i:s'), " Create new Worksheet object", EOL; $objPHPExcel->createSheet(); // Add some data to the second sheet, resembling some different data types echo date('H:i:s'), " Add some data", EOL; $objPHPExcel->setActiveSheetIndex(1); $objPHPExcel->getActiveSheet()->setCellValue('A1', 'Firstname:')->setCellValue('A2', 'Lastname:')->setCellValue('A3', 'Fullname:')->setCellValue('B1', '=PersonFN')->setCellValue('B2', '=PersonLN')->setCellValue('B3', '=PersonFN & " " & PersonLN'); // Resolve range