php mysql导出Excel格式

<?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  永久有效


转载注明出处 谢谢合作

猜你喜欢

转载自blog.csdn.net/qq_36999656/article/details/79787790