一、下载phpexcel插件
composer require phpoffice/phpexcel
二、实例
<?php
//查询数据库(可以加where条件筛选一下)
$data = $this->getList();
$arr = array();
$foreach ($data['list']['data'] as $index => $item){
$arr[$index]['member_name'] = $item['member_name'];
$arr[$index]['company_name'] = $item['company_name'];
$arr[$index]['content'] = $item['content'];
$arr[$index]['start_time'] = $item['s_time'];
$arr[$index]['end_time'] = $item['n_time'];
$arr[$index]['type'] = $item['type_name'];
$arr[$index]['state'] = $item['state_name'];
$arr[$index]['pin_time'] = $item['p_time'];
}
$title = '请假_' . date('Y-m-d');
$field = array(
'A' => array('company_name', '所属单位',15),##字段,表格头,单元格长度
'B' => array('member_name', '请假人',15),
'C' => array('type', '请假类型',15),
'D' => array('state', '状态',15),
'E' => array('start_time', '开始时间',15),
'F' => array('end_time', '结束时间',15),
'G' => array('pin_time', '销假时间',15),
'H' => array('content', '请假原因',30),
//导出表格标题设置,key和数据库查询的字段对应
);
ob_end_clean();
$objPHPExcel = new \PHPExcel();
$objWriter = new \PHPExcel_Writer_Excel2007($objPHPExcel); //设置保存版本格式
foreach ($arr as $key => $value) {
foreach ($field as $k => $v) {
$objPHPExcel->getActiveSheet()->getColumnDimension($k)->setWidth($v[2]);
if ($key == 0) {
$objPHPExcel->getActiveSheet()->setCellValue($k . '1', $v[1]);
}
$i = $key + 2; //表格是从2开始的
$objPHPExcel->getActiveSheet()->setCellValue($k . $i, $value[$v[0]]);
}
}
header("Pragma: public");
header("Expires: 0");
header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
header("Content-Type:application/force-download");
header("Content-Type:application/vnd.ms-execl");
header("Content-Type:application/octet-stream");
header("Content-Type:application/download");;
header('Content-Disposition:attachment;filename='.$title.'.xls');
header("Content-Transfer-Encoding:binary");
$objWriter->save('php://output');
三、总结
直接使用,按照以上实例根据自己实际导出数据,方法还是挺简单的,一般没什么复杂的逻辑性处理的导出都可以使用