php生成Excel
简单粗暴直接上代码
/** * @param $res //二维数组(要保存的数据,$res[0]为excel表头) * @param null $FileName //文件名 * @param null $width //每一列的宽度,键名与数据键名相同 * @param string $rgb //第一行背景颜色(16进制) * @return mixed * @throws \PHPExcel_Exception * @throws \PHPExcel_Writer_Exception */ function Excel_Create($res,$FileName =null, $width=null,$rgb=null) { require_once 'Classes/PHPExcel.php'; // ob_end_clean(); // 实例化excel类 $objPHPExcel = new \PHPExcel(); // 操作第一个工作表 $objPHPExcel->setActiveSheetIndex(0); // 设置sheet名 $objPHPExcel->getActiveSheet()->setTitle('Sheet1'); // 列名表头文字加粗 $objPHPExcel->getActiveSheet()->getStyle('A1:Z1')->getFont()->setBold(true); // 列表头文字居中 $objPHPExcel->getActiveSheet()->getStyle('A1:Z1')->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //获取表头 $keys = array_keys($res[0]); // 列名赋值 $col = 'A'; foreach ($keys as $key) { // 列名赋值 $objPHPExcel->getActiveSheet()->setCellValue($col . '1', $res[0][$key]); if($rgb!=null){ // 设置第一行颜色 $objPHPExcel->getActiveSheet()->getStyle($col . '1')->getFill()->applyFromArray(array( 'type' => \PHPExcel_Style_Fill::FILL_SOLID, 'startcolor' => array( 'rgb' => $rgb ) )); } //设置表格宽度 if($width!=null){ $objPHPExcel->getActiveSheet()->getColumnDimension($col)->setWidth($width[$key]); }else{ $objPHPExcel->getActiveSheet()->getColumnDimension($col)->setWidth(20); } $col = chr(ord($col) + 1); } unset($res[0]); // 数据起始行 $row_num = 2; // 向每行单元格插入数据 foreach ($res as $value) { // 设置所有垂直居中 $objPHPExcel->getActiveSheet()->getStyle('A' . $row_num . ':' . 'Z' . $row_num)->getAlignment() ->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); // 设置价格为数字格式 // $objPHPExcel->getActiveSheet()->getStyle('D' . $row_num)->getNumberFormat() // ->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_NUMBER_00); // 居中 $objPHPExcel->getActiveSheet()->getStyle('A' . $row_num . ':' . 'Z' . $row_num)->getAlignment() ->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); // 设置单元格值 $col = 'A'; foreach ($keys as $key) { // 单元格赋值 $objPHPExcel->getActiveSheet()->setCellValue($col . $row_num, $value[$key]); $col = chr(ord($col) + 1); } $row_num++; } if($FileName==null){ $FileName=time(); } $outputFileName = $FileName . '.xls'; $xlsWriter = new \PHPExcel_Writer_Excel5($objPHPExcel); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header('Content-Disposition:inline;filename="' . $outputFileName . '"'); // header(" Content-type:application / vnd.ms-excel; charset = UTF-8"); // header('Content-Disposition:attachment; filename =“'.iconv("gb2312",'utf-8',$outputFileName).'.xlsx”'); header("Content-Transfer-Encoding: binary"); header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Pragma: no-cache"); $xlsWriter->save("php://output"); // echo file_get_contents($outputFileName); return $res; }
引入文件(PHPExcel.php)传送门 :http://xcdn.php.cn/leiku/chuli/PHPExcel-1.8.zip?sign=32bd8b6174060344d512ff228b4bc229×tamp=1571102641