yii框架 excel导出
环境: yii框架 basic版
1.下载 PHPexcel (我用的是PHPExcel-1.8.1)
2.将下载的文件夹 (PHPExcel-1.8.1)放至 vender下 (路径:basic/vender/PHPExcel-1.1.8.1)
3.在控制器中引入 PHPExcel.php
require(__DIR__.'../../vendor/PHPExcel-1.8.1/Classes/PHPExcel.php');
//导出excel表格 public function actionExport() { //查订单表 查出数据 $sql = "select yuyue.id,indent,user,time,hao,movie from user join yuyue on `user`.id=yuyue.u_id join indent on `user`.id=indent.u_id "; $data = \yii::$app->db->createCommand($sql)->queryAll(); require(__DIR__.'../../vendor/PHPExcel-1.8.1/Classes/PHPExcel.php'); $name = 'Excelfile'; //生成的Excel文件名 $excel = new \PHPExcel; //设置 $excel->getProperties()->setCreator('转弯的月光') //创建人 ->setLastModifiedBy('转弯的阳光') //最后修改认 ->setTitle('数据EXCEL导出') //标题 ->setSubject('数据EXCEL到处') //题目 ->setDescription('备份数据') //描述 ->setKeywords('excel') //关键字 ->setCategory('result file'); //种类 /*-----------------------------以上设置不重要------------------------------------------*/ //以下就是对处理Excel里的数据,横着取数据,主要是这一步 foreach ($data as $k=>$v) { $num = $k+2; $excel->setActiveSheetIndex(0) ->setCellValue('B1','预约ID') ->setCellValue('C1','预约号') ->setCellValue('D1','预约时间') ->setCellValue('E1','预约人') ->setCellValue('F1','预约电影') ->setCellValue('G1','预约座位') ->setCellValue('B'.$num,$v['id']) ->setCellValue('C'.$num,$v['indent']) ->setCellValue('D'.$num,$v['time']) ->setCellValue('E'.$num,$v['user']) ->setCellValue('F'.$num,$v['movie']) ->setCellValue('G'.$num,$v['hao']); } $excel->getActiveSheet()->setTitle('USER'); //设置sheet 的名字 $excel->setActiveSheetIndex(0); header('Content-Type:applicationnd.ms-excel'); header('Content-Disposition:attachment;filename="'.$name.'.xls"'); header('Cache-Control:max-age=0'); $objWriter = \PHPExcel_IOFactory::createWriter($excel,'Excel5'); $objWriter->save("php://output"); exit; }