第一步下载PHPExcel类 命名为PHPExcel 放到vendor下
PHPExcel文件和控制器的完整代码可进网盘进行下载
链接:https://pan.baidu.com/s/1ShWpmC2VTnWSUgdrqz4BtA?pwd=spyb
提取码:spyb
控制代码,需对应数据字段进行修改
public function excel(){ header('Content-Type:text/html; charset=utf-8');//转换一下格式 避免乱码 $xlsData = db('orders')->select(); //dump($xlsData);die; Vendor('PHPExcel.PHPExcel');//调用类库,路径是基于vendor文件夹的 Vendor('PHPExcel.PHPExcel.Worksheet.Drawing'); Vendor('PHPExcel.PHPExcel.Writer.Excel2007'); $objExcel = new \PHPExcel(); //set document Property $objWriter = \PHPExcel_IOFactory::createWriter($objExcel, 'Excel2007'); $objActSheet = $objExcel->getActiveSheet(); $key = ord("A"); $letter =explode(',',"A,B,C,D,E,F,G,H,I,J"); //填充表头信息 $arrHeader = array('订单号','商品名称','数量','姓名','电话','支付状态','应收款','下单时间'); $lenth = count($arrHeader); for($i = 0;$i < $lenth;$i++) { $objActSheet->setCellValue("$letter[$i]1","$arrHeader[$i]"); }; //填充表格信息 //0,未支付,1待确认,2已支付,3已完成 foreach($xlsData as $k=>$v){ $k +=2; $objActSheet->setCellValue('A'.$k,$v['ordersn']); $objActSheet->setCellValue('B'.$k, $v['gtitle']); $objActSheet->setCellValue('C'.$k, $v['totalnum']); $objActSheet->setCellValue('D'.$k, $v['realname']); $objActSheet->setCellValue('E'.$k, $v['mobile']); if($v['ostatus'] == 0){ $paystyle = '未支付'; }elseif($v['ostatus'] == 1){ $paystyle = '待确认'; }elseif($v['ostatus'] == 2){ $paystyle = '已支付'; }elseif($v['ostatus'] == 3){ $paystyle = '已完成'; } $objActSheet->setCellValue('F'.$k, $paystyle); $objActSheet->setCellValue('G'.$k, $v['price']); $objActSheet->setCellValue('H'.$k, date('Y-m-d H:i:s',$v['ocreatetime'])); // 表格高度 $objActSheet->getRowDimension($k)->setRowHeight(20); } $width = array(10,15,20,25,30); //设置表格的宽度 $objActSheet->getColumnDimension('A')->setWidth($width[1]); $objActSheet->getColumnDimension('B')->setWidth($width[2]); $objActSheet->getColumnDimension('C')->setWidth($width[3]); $objActSheet->getColumnDimension('D')->setWidth($width[4]); $objActSheet->getColumnDimension('E')->setWidth($width[1]); $objActSheet->getColumnDimension('F')->setWidth($width[1]); $objActSheet->getColumnDimension('G')->setWidth($width[1]); $objActSheet->getColumnDimension('H')->setWidth($width[1]); $objActSheet->getColumnDimension('I')->setWidth($width[1]); //下载的文件夹名 $outfile = "信息列表.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'); }
完全实现, 站长使用的是TP5.0框架PHP7版本, 无需使用composer,百度云盘里面有下载好的类文件在PHPExcel文件夹
技术QQ交流群:157711366
技术微信:liehuweb
写评论