安装composer扩展包命令:
composer require phpoffice/phpexcel
在控制器里写一个方法代码如下:
public static function exportMessage()
{
$driver = Db::table('t_user')->select();
//导出表格
$objExcel = new \PHPExcel();
//设置表头
// 合并
$objExcel->getActiveSheet()->mergeCells('A1:I1');
$objActSheet = $objExcel->getActiveSheet(0);
$objActSheet->setTitle('用户统计');//设置excel的标题
$objActSheet->setCellValue('A1', '信息列表');
$objActSheet->setCellValue('A2', 'id');
$objActSheet->setCellValue('B2', '姓名');
$objActSheet->setCellValue('C2', '手机');
$objActSheet->setCellValue('D2', '时间');
$objActSheet->setCellValue('E2', '类型');
$objActSheet->setCellValue('F2', 'app名字');
$baseRow = 3;
foreach ($driver as $r => $d) {
$i = $baseRow + $r;
$objExcel->getActiveSheet()->setCellValue('A' . $i, $d['id']);
$objExcel->getActiveSheet()->setCellValue('B' . $i, $d['realname']);
$objExcel->getActiveSheet()->setCellValue('C' . $i, $d['mobile']);
$objExcel->getActiveSheet()->setCellValue('D' . $i, $d['create_time']);
$objExcel->getActiveSheet()->setCellValue('E' . $i, $d['type']);
$objExcel->getActiveSheet()->setCellValue('F' . $i, $d['appname']);
}
$objExcel->setActiveSheetIndex(0);
//4、输出
$objExcel->setActiveSheetIndex();
$objExcel->getProperties()->setCreator('admin'); //创建人
header('Content-Type: application/vnd.ms-excel;charset=UTF-8');
$time = date('YmdHis');
header("Content-Disposition: attachment;filename=信息$time.xls");
header('Cache-Control: max-age=0');
header('Pragma: public');
$objWriter = \PHPExcel_IOFactory::createWriter($objExcel, 'Excel5');
$objWriter->save('php://output');
exit();
}
用href链接跳转到此方法,用ajax失败
window.location.href= 'http://xxxxxxx';
return false;