释放双眼,带上耳机,听听看~!
首先找到拓展类PHPExcel
链接:https://pan.baidu.com/s/1BgSZ8rHkYm3MJKZu7_FZDg
提取码:mdi7
封装方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 1private function getExcel($fileName,$headArr,$data)
2{
3 $date = date("Y_m_d",time());
4 $fileName .= "_{$date}.xls";
5 //导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入
6 import("Org.Util.PHPExcel");
7 import("Org.Util.PHPExcel.Writer.Excel5");
8 import("Org.Util.PHPExcel.IOFactory.php");
9 //创建PHPExcel对象
10 $objPHPExcel = new \PHPExcel();
11 $objProps = $objPHPExcel->getProperties();
12 //设置表头
13 $key = ord("A");
14 //print_r($headArr);exit;
15 foreach($headArr as $v){
16 $colum = chr($key);
17 $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum.'1', $v);
18 $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum.'1', $v);
19 $key += 1;
20 }
21 $column = 2;
22 $objActSheet = $objPHPExcel->getActiveSheet();
23 //print_r($data);exit;
24 foreach($data as $key => $rows){ //行写入
25 $span = ord("A");
26 foreach($rows as $keyName=>$value){// 列写入
27 $j = chr($span);
28 $objActSheet->setCellValue($j.$column, $value);
29 $span++;
30 }
31 $column++;
32 }
33 $fileName = iconv("utf-8", "gb2312", $fileName);
34 //重命名表
35 //$objPHPExcel->getActiveSheet()->setTitle('test');
36 //设置活动单指数到第一个表,所以Excel打开这是第一个表
37 $objPHPExcel->setActiveSheetIndex(0);
38 ob_end_clean();//清除缓冲区,避免乱码
39 header('Content-Type: application/vnd.ms-excel');
40 header("Content-Disposition: attachment;filename=\"$fileName\"");
41 header('Cache-Control: max-age=0');
42 $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
43 $objWriter->save('php://output'); //文件通过浏览器下载
44 exit;
45}
46
调用实例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 1 // 导出数据excel
2 public function export(){
3 // $data 数据源
4 header("Content-Type: text/html;charset=utf-8");
5 $goods = M('fuser');
6 $res = $goods->order('creat_time desc')->select();
7 $peo=M('lv');
8 foreach($res as $key=>$value){
9 $ids = $value['from'];
10 $name = $peo->where("id=$ids")->select();
11 $value['fname']=$name[0]['name'];
12 $res[$key]['fname']=$value['fname'];
13 }
14 foreach ($res as $k=>$goods_info){
15 $data[$k]['id'] = $goods_info['id'];
16 $data[$k]['companyname'] = $goods_info['companyname'];
17 $data[$k]['name'] = $goods_info['name'];
18 $data[$k]['phone'] = $goods_info['phone'];
19 $data[$k]['peo'] =$goods_info['fname'];
20 $data[$k]['creat_time'] = date('Y-m-d',$goods_info['creat_time']);
21 }
22 foreach ($data as $field=>$v){
23 if($field == 'id'){
24 $headArr[]='ID';
25 }
26 if($field == 'companyname'){
27 $headArr[]='公司名称';
28 }
29 if($field == 'name'){
30 $headArr[]='客户姓名';
31 }
32 if($field == 'phone'){
33 $headArr[]='客户手机号';
34 }
35 if($field == 'peo'){
36 $headArr[]='客户来源';
37 }
38 if($field == 'creat_time'){
39 $headArr[]='客户录入时间';
40 }
41 }
42 //$headArr 列
43 //$Data 数据
44 $filename="企业宝数据";//文件名
45 getExcel($filename,$headArr,$data);
46 }
47
48