您的位置:首页 > 编程语言 > PHP开发

分享一个php配合数据库导出excel的方法

2017-02-20 07:56 1081 查看
/**
* 数据导出EXCEL
* 顶头key
* @param $header_array
*数据源
* @param $data_array
* 数据输出key
* @param $each_key_array
* 都出文件名
* @param $filename
* @throws \PHPExcel_Exception
* @throws \PHPExcel_Reader_Exception
* 使用DEMO:
* $header_array = ['A1'=>'用户','B1'=>'分组',];
* $data_array = Model::find()->asArray()->all();
* $each_key_array = ['user_name','group'];//需要统计的数据库表中字段
* $filename = '用户分组统计';
*ExcelUtil::InitExport($header_array,$data_array,$each_key_array,$filename);
*/
public static function InitExport($header_array,$data_array,$each_key_array,$filename)
{
$objectPHPExcel = new \PHPExcel();
$E_key = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'];
$objectPHPExcel->setActiveSheetIndex(0);
foreach ($header_array as $k=>$v){
$objectPHPExcel->getActiveSheet()->setCellValue($k,$v);
}
$i = 2;//行
foreach($data_array as $item){
for($j = 0;$j < count($each_key_array);$j++){
$objectPHPExcel->getActiveSheet()->setCellValue($E_key[$j].$i,$item[$each_key_array[$j]]);
}
$i++;
}

ob_end_clean();
ob_start();
header("Content-type:application/vnd.ms-excel;charset=UTF-8");

$filename = iconv('utf-8','gb2312',$filename);
header('Content-Disposition:attachment;filename="'.$filename.'.xls"');
$excelWriter= \PHPExcel_IOFactory::createWriter($objectPHPExcel,'Excel5');
$excelWriter->save('php://output');
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php 数据库 excel 数据