企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
phpexcel导出表格打开后发现不可取内容 原因是调用`$objWriter->save('php://output')`之后一定要紧跟`exit()` ``` $objPHPExcel = new \PHPExcel(); //开始时间戳 $startTime=$time?substr($time,0,10):time(); //结束时间戳 $endTime=$startTime+60*60*24; //数据 $data=$this->getData($startTime,$endTime); //合计 $total=[ 'count'=>0, 'amount'=>0, 'sign_amount'=>0 ]; foreach($data as $v){ $total['count']+=$v['count']; $total['amount']+=$v['amount']; $total['sign_amount']+=$v['sign_amount']; } $data['合计']=$total; //设置表头的信息 $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', "签约金额(万)"); //循环输出数据 $i=2; foreach ($data as $key => $value) { $objPHPExcel->getActiveSheet() // 设置第一个内置表(一个xls文件里可以有多个表)为活动的 ->setCellValue( 'A'.$i, $key ) //给表的单元格设置数据 ->setCellValue( 'B'.$i, $value['count'] ) //数据格式可以为字符串 ->setCellValue( 'C'.$i, $value['count'] ) //数据格式可以为字符串 ->setCellValue( 'D'.$i, $value['count'] ) //数据格式可以为字符串 ->setCellValue( 'E'.$i, $value['count'] ) //数据格式可以为字符串 ->setCellValue( 'F'.$i, $value['amount'] ) //数据格式可以为字符串 ->setCellValue( 'G'.$i, $value['amount'] ) //数据格式可以为字符串 ->setCellValue( 'H'.$i, $value['amount'] ) //数据格式可以为字符串 ->setCellValue( 'I'.$i, '' ) //数据格式可以为字符串 ->setCellValue( 'J'.$i, '' ) //数据格式可以为字符串 ->setCellValue( 'K'.$i, '' ) //数据格式可以为字符串 ->setCellValue( 'L'.$i, $value['amount'] ) //数据格式可以为字符串 ->setCellValue( 'M'.$i, '30' ) //数据格式可以为字符串 //布尔型 ->setCellValue( 'N'.$i, $value['sign_amount'] ); $i++; } //日期 $date=date('Y-m-d',$startTime); //文件名 $fileName=$date.'数据报表.xlsx'; //得到当前活动的表 $objActSheet =$objPHPExcel->getActiveSheet(); //设置表格样式 //固定表头 $objActSheet->freezePane('A2'); //设置行高 $objActSheet->getDefaultRowDimension()->setRowHeight(25); //所有单元格垂直居中 $objPHPExcel->getDefaultStyle()->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getDefaultStyle()->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_CENTER); //填充背景色 $objActSheet->getStyle('A1:N1')->getFill()->setFillType(\PHPExcel_Style_Fill::FILL_SOLID);//设置填充颜色 $objActSheet->getStyle('A1:N1')->getFill()->getStartColor()->setARGB('d6ecf0');//设置填充颜色 //字体加粗 $objActSheet->getStyle('A1:N1')->getFont()->setBold(true); //单元格宽度 $objActSheet->getColumnDimension('A')->setWidth(20); $objActSheet->getColumnDimension('B')->setWidth(15); $objActSheet->getColumnDimension('C')->setWidth(23); $objActSheet->getColumnDimension('D')->setWidth(15); $objActSheet->getColumnDimension('E')->setWidth(11); $objActSheet->getColumnDimension('F')->setWidth(15); $objActSheet->getColumnDimension('H')->setWidth(11); $objActSheet->getColumnDimension('K')->setWidth(11); $objActSheet->getColumnDimension('J')->setWidth(11); $objActSheet->getColumnDimension('K')->setWidth(11); $objActSheet->getColumnDimension('L')->setWidth(15); $objActSheet->getColumnDimension('M')->setWidth(15); $objActSheet->getColumnDimension('N')->setWidth(14); //给当前活动的表设置名称 $objActSheet->setTitle($date.'数据表格'); //1,直接生成一个文件 //$objWriter =\PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); //导出到服务器上 //$objWriter->save($fileName); //导出到客户端,提供下载 header('Content-Type:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition:attachment;filename='.$fileName); header('Cache-Control:max-age=0'); $objWriter =\PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->save('php://output'); //output之后,必须exit()防止excel文件打开提示错误信息 exit(); ```