https://github.com/PHPOffice/PHPExcel //如果内网不能打开-用梯子
将下载后的目录放在项目根目录的 extend/下
一个方法搞定!
public function out($res){
include EXTEND_PATH . "PHPExcel/PHPExcel.php";
$PHPExcel=new \PHPExcel();
$PHPSheet = $PHPExcel->getActiveSheet();
$file_name = date('Y-m-d_H:i:s') . '订单数据'.'.xls';//设置文件名称
$PHPSheet->setTitle("代理商");//表头
$PHPSheet->setCellValue("A1", "订单ID");//根据字段设置表头
$PHPSheet->setCellValue("B1", "订单编号");
$PHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10);//设置表格宽度
$PHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(10);
// 设置垂直居中
$PHPExcel->setActiveSheetIndex(0)->getStyle('A')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$PHPExcel->setActiveSheetIndex(0)->getStyle('B')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$i = 2;//数据从第二行起
// $data=\app\One\model\One::show();//接受数据库数据
// $model=model('Order');
// $data =$model->alias('a')->join('pay b','a.order_pay = b.pay_site')->select();//这里是获取数据的地方
foreach ($res as $key => $value) {
$PHPSheet->setCellValue('A' . $i, '' . $value['order_id']);//循环输出数据
$PHPSheet->setCellValue('B' . $i, '' . $value['order_mun']);
$PHPSheet->setCellValue('c' . $i, '' . $value['order_name']);
$i++;
}
$PHPExcel->setActiveSheetIndex(0);
$objWriter = \PHPExcel_IOFactory::createWriter($PHPExcel, "Excel2007");
header('Content-Disposition: attachment;filename=' . $file_name);
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Cache-Control: max-age=0');
$objWriter->save("php://output");//浏览器下载
}