1.首先需要去官网https://github.com/PHPOffice/PHPExcel/下载PHPExcel,下载后只需要Classes目录下的文件即可。
将classes 下的文件放到 vendor/PHPExcel 文件夹下 (PHPExcel自己创建)

2.php 文件
use PHPExcel_IOFactory;
use PHPExcel_Cell;
use PHPExcel;
//导出搜索信息************************************************************************************
public function dcexcel(){
$excel_listall = session('excel_listall');
$path = dirname(__FILE__); //找到当前脚本所在路径
vendor("PHPExcel.PHPExcel.PHPExcel");
vendor("PHPExcel.PHPExcel.Writer.IWriter");
vendor("PHPExcel.PHPExcel.Writer.Abstract");
vendor("PHPExcel.PHPExcel.Writer.Excel5");
vendor("PHPExcel.PHPExcel.Writer.Excel2007");
vendor("PHPExcel.PHPExcel.IOFactory");
$objPHPExcel = new \PHPExcel();
$objWriter = new \PHPExcel_Writer_Excel5($objPHPExcel);
$objWriter = new \PHPExcel_Writer_Excel2007($objPHPExcel);
// 实例化完了之后就先把数据库里面的数据查出来
$sql = $excel_listall ;
// 设置表头信息
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', '预约日期')
->setCellValue('B1', '姓名')
->setCellValue('C1', '性别')
->setCellValue('D1', '年龄')
->setCellValue('E1', '电话')
->setCellValue('F1', '地区')
->setCellValue('G1', '病种')
->setCellValue('H1', '来源')
->setCellValue('I1', '咨询员')
->setCellValue('J1', '患者分类')
->setCellValue('k1', '专家')
->setCellValue('L1', '录入日期')
->setCellValue('M1', '病情描述')
->setCellValue('N1', '预约备注');
/*--------------开始从数据库提取信息插入Excel表中------------------*/
$i=2; //定义一个i变量,目的是在循环输出数据是控制行数
$count = count($sql); //计算有多少条数据
for ($i = 2; $i <= $count+1; $i++) {
$objPHPExcel->getActiveSheet()->setCellValue('A' . $i, $sql[$i-2]['yytime']);
$objPHPExcel->getActiveSheet()->setCellValue('B' . $i, $sql[$i-2]['name']);
$objPHPExcel->getActiveSheet()->setCellValue('C' . $i, $sql[$i-2]['sex']);
$objPHPExcel->getActiveSheet()->setCellValue('D' . $i, $sql[$i-2]['age']);
$objPHPExcel->getActiveSheet()->setCellValue('E' . $i, $sql[$i-2]['tel']);
$objPHPExcel->getActiveSheet()->setCellValue('F' . $i, $sql[$i-2]['dq']);
$objPHPExcel->getActiveSheet()->setCellValue('G' . $i, $sql[$i-2]['bz']);
$objPHPExcel->getActiveSheet()->setCellValue('H' . $i, $sql[$i-2]['ly']);
$objPHPExcel->getActiveSheet()->setCellValue('I' . $i, $sql[$i-2]['kefu']);
$objPHPExcel->getActiveSheet()->setCellValue('J' . $i, $sql[$i-2]['hzfl']);
$objPHPExcel->getActiveSheet()->setCellValue('K' . $i, $sql[$i-2]['doctor']['name']);
$objPHPExcel->getActiveSheet()->setCellValue('L' . $i, $sql[$i-2]['ctime']);
$objPHPExcel->getActiveSheet()->setCellValue('M' . $i, $sql[$i-2]['bingqing']);
$objPHPExcel->getActiveSheet()->setCellValue('N' . $i, $sql[$i-2]['yyremark']);
}
/*--------------下面是设置其他信息------------------*/
$objPHPExcel->getActiveSheet()->setTitle('搜索信息'); //设置sheet的名称
$objPHPExcel->setActiveSheetIndex(0); //设置sheet的起始位置
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); //通过PHPExcel_IOFactory的写函数将上面数据写出来
$PHPWriter = \PHPExcel_IOFactory::createWriter( $objPHPExcel,"Excel2007");
$filename = date('Y-m-d') .'搜索信息';
header('Content-Disposition: attachment;filename="'.$filename.'.xlsx"');
header('Content-Type: applicsation/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
$PHPWriter->save("php://output"); //表示在$path路径下面生成demo.xlsx文件
}
//导出搜索信息结束************************************************************************************