<?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 永久有效
转载注明出处 谢谢合作