1.导出excel
登录Xshell,cd 项目根目录
利用composer安装phpexcel库类,composer require phpoffice/phpexcel
这个东西安装很慢,建议安装前先切换到国内composer源
参考:http://blog.qvnidaye.com/index.php/Home/Index/article/aid/82
依赖库类安装完以后,上php
//引入依赖 use PHPExcel; use PHPExcel_Writer_Excel5; //控制器 public function out($ids = null){ $result = $this->model->field('km,isuse,type_id')->order('id asc')->select(); if(!$result) return false; $type = Db::name('flow_tc')->where(['id'=>$result[0]['type_id']])->value('content'); //设置文件名称 $filename = $type . '--' . $ids; $objPHPExcel = new PHPExcel(); //设置保存版本格式 $objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); //设置表头 $objPHPExcel->getActiveSheet()->setCellValue('A1','卡密'); $objPHPExcel->getActiveSheet()->setCellValue('B1','套餐描述'); $objPHPExcel->getActiveSheet()->setCellValue('C1','当前状态'); //改变此处设置的长度数值 $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(25); $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(15); $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(10); //输出表格 foreach ($result as $key => &$val) { $i=$key+2;//表格是从2开始的 $status = ($val['isuse'] == 0) ? '未使用' : '已激活'; $objPHPExcel->getActiveSheet()->setCellValue('A'.$i,$val['km']); $objPHPExcel->getActiveSheet()->setCellValue('B'.$i,$type); $objPHPExcel->getActiveSheet()->setCellValue('C'.$i,$status); } header("Pragma: public"); header("Expires: 0"); header("Cache-Control:must-revalidate, post-check=0, pre-check=0"); header("Content-Type:application/force-download"); header("Content-Type:application/vnd.ms-execl"); header("Content-Type:application/octet-stream"); header("Content-Type:application/download"); header('Content-Disposition:attachment;filename='.$filename.'.xls'); header("Content-Transfer-Encoding:binary"); $objWriter->save('php://output'); }
2.导出txt
导出txt并且自动下载的需求,没什么好说的直接上代码吧
//控制器 public function txt($ids = null){ $result = $this->model->field('km,type_id')->order('id asc')->select(); if(!$result) return false; $type = Db::name('flow_tc')->where(['id'=>$result[0]['type_id']])->value('content'); //设置文件名称 $filename = $type . '--' . $ids; $content = ''; foreach ($result as $item) { $content .= $item['km'] . "\r\n"; } Header("Content-type:application/octet-stream"); Header("Accept-Ranges:bytes"); header("Content-Disposition:attachment;filename={$filename}.txt"); header("Expires:0"); header("Cache-Control:must-revalidate,post-check=0,pre-check=0 "); header("Pragma:public"); echo $content; }
3.最后,直接通过url请求控制器即可实现自动下载啦
下载效果:
无论从事什么行业,只要做好两件事就够了,一个是你的专业、一个是你的人品,专业决定了你的存在,人品决定了你的人脉,剩下的就是坚持,用善良專業和真诚赢取更多的信任。