1. 下载PHPExcel的SDK,下载地址为:https://github.com/PHPOffice/PHPExcel,将下载的文件解压后,在自己项目common目录下新建phpexcel目录,将Classes目录下的文件拷贝到phpexcel下。
2. 导出excel文件,代码如下
// 引入PHPExcel文件 include_once ROOT_PATH.'/app/common/phpexcel/PHPExcel.php'; //实例化并配置PHPExcel $objPHPExcel = new PHPExcel(); $objPHPExcel->getProperties()->setCreator("Maarten Balliauw") ->setLastModifiedBy("Maarten Balliauw") ->setTitle("Office 2007 XLSX Test Document") ->setSubject("Office 2007 XLSX Test Document") ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") ->setKeywords("office 2007 openxml php") ->setCategory("Test result file"); //为表格添加表头 $objPHPExcel->setActiveSheetIndex(0) //Excel的第A列,uid是你查出数组的键值,下面以此类推 ->setCellValue('A1',"活动ID") ->setCellValue('B1',"客户名称") ->setCellValue('C1',"交易号") ->setCellValue('D1',"金额") ->setCellValue('E1',"支付时间") ->setCellValue('F1',"活动名称") ->setCellValue('G1',"活动时间"); /*以下就是对处理Excel里的数据, 横着取数据,主要是这一步,其他基本都不要改*/ foreach($data as $k => $v) { $num=$k+2; $objPHPExcel->setActiveSheetIndex(0) ->setCellValue('A'.$num, $v->liveId) ->setCellValue('B'.$num, $v->nickName) ->setCellValue('C'.$num, " " . $v->out_trade_no . " ") ->setCellValue('D'.$num, round($v->payedmoney/100,2)) ->setCellValue('E'.$num, $v->payedTime) ->setCellValue('F'.$num, $v->locationTime); } // 为表格设置表格名称 $objPHPExcel->getActiveSheet()->setTitle('User'); // 设置表格大小自适应 $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setAutoSize(true); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setAutoSize(true); $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setAutoSize(true); $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setAutoSize(true); $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setAutoSize(true); $objPHPExcel->setActiveSheetIndex(0); //通过浏览器下载表格 header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="'.$name.'.xls"'); header('Cache-Control: max-age=0'); header('Cache-Control: max-age=1'); // If you're serving to IE over SSL, then the following may be needed header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1 header ('Pragma: public'); // HTTP/1.0 $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); exit;