总结了两种下载excel方法:
第一种:生成excel,每次点击下载生成一次excel:
代码:
public function excel() { $excel=new Excel(); //设置编码: $excel->setEncode("UTF-8","gb2312"); //如果不转码,参数写一样即可,例如$excel->setEncode("utf-8","utf-8"); $titlearr=array( "姓名", "英文姓名", "生日(2016-9-6)", "测试级别(如GKA,GKB,G1A,G1B,G1C等)", "电子邮箱", "性别(男或者女)", "学校", "座机电话", "联系方式(手机号)", "年级", "市场来源(如地推,官网,微信,微博,教育宝,淘宝,介绍等)", "监护人名字", "关系", "家庭住址", "备注", "(上课状态:待试听,已试听,不报名,已试听,待跟进,上课,冻结,结业,待试听,未出席,已预约)");$excel->getExcel($titlearr,'student');}
注意:这里new 了一下Excel()
控制器下面要引入这个类的:excel.class.php类放在Home/Common/Common下,位置可以自己改
use Home\Common\Common\Excel;
调用excel里的方法:
$excel->getExcel($titlearr,'student');'student'为生成的excel名字,可以随便取:
excel.class.php下的方法:
自己用过的不喜勿喷public function getExcel($titlearr,$filename=''){ if($filename==''){ $filename="学生批量导入表"; } $title=$this->setTitle($titlearr); //$content=$this->setRow($array); header("Content-type: application/octet-stream"); header("Accept-Ranges:bytes"); header("Content-Disposition:attachment;filename=".trim($filename).date("Y-m-d").".xls"); echo $title; //echo $content; }public function setTitle($titlearr){ $title=""; foreach($titlearr as $v){ if($this->inEncode!=$this->outEncode){ $title.=iconv($this->inEncode,$this->outEncode,$v)."\t"; } else{ $title.=$v."\t"; } } $title.="\n"; return $title; }