<?php header('Content-Type: application/vnd.ms-excel'); header('Content-Type: application/octet-stream'); header('Cache-Control: max-age=0'); //连接数据库 $PDO = new PDO('mysql:host=127.0.0.1;dbname=test','username','password'); //写入前1000条数据 $sql='SELECT * FROM `sysuser` LIMIT 0, 1000'; $data=$PDO->query($sql)->fetchAll(PDO::FETCH_ASSOC); $key=[]; //得到所有键名 foreach($data[0] as $k=>$v){ $key[]=$k; } //引入phpExcel类 require_once('phpExcel.php'); $obj=new PHPExcel(); //创建对象 $str='ABCDEFGHIJKLMNOPQRSTUVWXYZ'; //表格第一行(标题) for($i=0;$i<count($key);$i++){ $obj->setActiveSheetIndex(0)->setCellValue($str[$i].'1',$key[$i]); } //设置单元格格式 背景颜色 $obj->getActiveSheet()->getStyle( 'A1:'.$str[$i-1].'1')->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID); $obj->getActiveSheet()->getStyle( 'A1:'.$str[$i-1].'1')->getFill()->getStartColor()->setARGB('FF808080'); //写入数据 foreach($data as $ke=>$val){ $ke+=2; for($j=0;$j<count($val);$j++){ $obj->setActiveSheetIndex(0)->setCellValue($str[$j].$ke,$val[$key[$j]]); } } //表格默认字体 字体大小 $obj->getDefaultStyle()->getFont()->setName('ARial'); $obj->getDefaultStyle()->getFont()->setSize(12); //设置每列的宽 $obj->getActiveSheet()->getDefaultColumnDimension()->setWidth(14); //具体到某列 $obj->getActiveSheet()->getColumnDimension('F')->setWidth(20); // $obj->getDefaultStyle()->getAlignemnt()->setHorizontal(PHPExcel_Style_Alignemnt::HORIZONTAL_CENTER); $obj->getDefaultStyle()->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); $obj->getActiveSheet() -> setTitle('用户列表'); $obj-> setActiveSheetIndex(0); //生成下载文件 $objWriter=PHPExcel_IOFactory::createWriter($obj,'Excel2007'); $filename = '用户列表.xlsx'; // ob_end_clean();//清除缓存以免乱码出现 header('Content-Disposition: attachment; filename="' . $filename . '"'); $objWriter -> save('php://output');
//phpExcel 扩展 如果是php7.0 会产生一个错误把相应文件(functions.php) 500多行的 break 删掉即可
链接:https://pan.baidu.com/s/1s8D8WtKMuHBS-pME81JanQ 密码:b7ti 永久有效
转载注明出处 谢谢合作