error_reporting(E_ALL); ini_set('display_errors', 1); ini_set('display_startup_errors', 1); date_default_timezone_set('Europe/London'); define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); /** Include PHPExcel */ //require_once '../Build/PHPExcel.phar'; require_once './PHPExcel.php'; // Create new PHPExcel object $objPHPExcel = new PHPExcel(); // Set document properties $objPHPExcel->getProperties()->setCreator("test") ->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"); $titlesLables = [ 'id' => '序号', 'name' => '名称', 'zzz' => 'zcvcx', ]; $titles = array_keys($titlesLables); $arr = [ [ 'id' => 1, 'name' => '发达省份打算', 'zzz' => 'zzzzzzzzzzz', ], [ 'id' => 2, 'name' => 's#$%^&)_*023\t\t\n', 'zzz' => 'fdsafdsa' ] ]; $titleCount = count($titles); $ii = 1; for($i= 'A';$i <= 'Z'; $i++){ if ($ii > $titleCount) { break; } $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($i.'1', $titlesLables[$titles[$ii-1]]); $objPHPExcel->getActiveSheet()->getStyle($i.'1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID); $objPHPExcel->getActiveSheet()->getStyle($i.'1')->getFill()->getStartColor()->setARGB('d8d8d8'); $objPHPExcel->getActiveSheet()->getStyle($i.'1')->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle($i.'1')->getFont()->setSize(10); $ii++; } foreach($arr as $rowi => $tmp){ $ii = 1; for($i= 'A';$i <= 'Z'; $i++){ if ($ii > $titleCount) { break; } $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($i.($rowi+2), $arr[$rowi][ $titles[$ii-1] ]); $ii++; } } // Rename worksheet $objPHPExcel->getActiveSheet()->setTitle('Simple'); // Set active sheet index to the first sheet, so Excel opens this as the first sheet $objPHPExcel->setActiveSheetIndex(0); // Redirect output to a client’s web browser (Excel2007) header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="simple.xlsx"'); header('Cache-Control: max-age=0'); // If you're serving to IE 9, then the following may be needed header('Cache-Control: max-age=1'); // If you're serving to IE over SSL, then the following may be needed header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1 header ('Pragma: public'); // HTTP/1.0 $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->save('php://output'); exit;