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请求控制器即可实现自动下载啦
下载效果:



无论从事什么行业,只要做好两件事就够了,一个是你的专业、一个是你的人品,专业决定了你的存在,人品决定了你的人脉,剩下的就是坚持,用善良專業和真诚赢取更多的信任。