生成表格的方法,需要的加以改造即可使用
public function export(){
$id = input('id','');
vendor('phpexcel.Classes.PHPExcel');
$excel = new \PHPExcel();
$letter = ['A','B','C','D','E','F'];
$tableHeader = ['ID','品牌','姓名','手机','分数','答题时长']; //设置表头数组,单独处理
for ($i=0; $i <count($tableHeader) ; $i++) {
$excel->getActiveSheet()->setCellValue($letter[$i].'2',$tableHeader[$i]); //设置单元格的值
}
// 数据列表
$insert =QuestUser::where('theme_id',$id)->paginate();
$totalInsert = count($insert); //计算总插入数
for ($i=0; $i <$totalInsert ; $i++) {
$excel->getActiveSheet()->setCellValue('A'.($i+3),$insert[$i]['id']);
$excel->getActiveSheet()->setCellValue('B'.($i+3),$insert[$i]['mark']);
$excel->getActiveSheet()->setCellValue('C'.($i+3),$insert[$i]['username']);
$excel->getActiveSheet()->setCellValue('D'.($i+3),$insert[$i]['phone']);
$excel->getActiveSheet()->setCellValue('E'.($i+3),$insert[$i]['score']);
$time = $insert[$i]['add_time']-$insert[$i]['create_time'];
$time = $this->Sec2Time($time);
$excel->getActiveSheet()->setCellValue('F'.($i+3),$time);
}
ob_end_clean();
$write = new \PHPExcel_Writer_Excel5($excel);
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="摸底考试.xls"'); //可以对文件名进行处理
header("Content-Transfer-Encoding:binary");
$write->save('php://output');
}