_query($this->table)->layTable(function (){ $this->title = '奖品订单'; $this->type = input('type', 'award'); },function (QueryHelper $query){ $query->alias('o')->leftJoin('awards_user_info u', 'o.uid = u.uid') ->leftJoin('awards_gift g', 'o.gift_id = g.id') ->field(['o.id', 'u.uid', 'u.nickname', 'o.name', 'o.mobile', 'o.address', 'g.name as giftName']) ->order('o.id desc'); $query->equal('o.uid')->like('u.nickname'); }); } public function award() { $data = $this->app->db->name('Order')->alias('o') ->leftJoin('awards_user_info u', 'o.uid = u.uid') ->leftJoin('awards_gift g', 'o.gift_id = g.id') ->field(['o.id', 'u.uid', 'u.nickname', 'o.name', 'o.mobile', 'o.address', 'g.name as giftName']) ->order('o.id desc')->select(); //实例化 $objExcel = new \PHPExcel(); //设置文档属性 $objWriter = \PHPExcel_IOFactory::createWriter($objExcel, 'Excel2007'); //设置内容 $objActSheet = $objExcel->getActiveSheet(); $letter = explode(',', "A,B,C,D,E,F"); $arrHeader = ['微博UID', '微博昵称', '收件人姓名', '联系人电话', '收件地址', '奖品']; //填充表头信息 $lenth = count($arrHeader); for ($i = 0; $i < $lenth; $i++) { $objActSheet->setCellValue("$letter[$i]1", "$arrHeader[$i]"); }; //填充表格信息 foreach ($data as $k => $v) { $k += 2; //表格内容 $objActSheet->setCellValue('A' . $k, $v['uid']." "); $objActSheet->setCellValue('B' . $k, $v['nickname']); $objActSheet->setCellValue('C' . $k, $v['name']); $objActSheet->setCellValue('D' . $k, $v['mobile']." "); $objActSheet->setCellValue('E' . $k, $v['address']); $objActSheet->setCellValue('F' . $k, $v['giftName']); } $outfile = "中奖信息" . date('Ymd') . ".xlsx"; ob_end_clean(); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); header('Content-Disposition:inline;filename="' . $outfile . '"'); header("Content-Transfer-Encoding: binary"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Pragma: no-cache"); $objWriter->save('php://output'); } }