PHP TP3.2 导出excel文件功能的实现

HTML

<div class="input-group-btn right">
   <a href="{:U('export_info',array('search'=>$search))}">
     <button type="button" class="btn btn-xs all-btn btn-purple pull-right">
      <span class="ace-icon fa fa-globe icon-on-right bigger-110"></span>
      导出列表
     </button>
    </a>
</div>

控制器

public function export_info(){
$expzTitle  = "会员列表";
        $expCellName  = array(
            array('member_list_username','登录名'),
            array('address_detail','地址'),
            array('member_list_sex','性别'),   
            array('member_list_tel','手机'),
            array('member_list_open','审核状态'),
            array('member_list_addtime','添加时间戳'),
            array('user_status','禁用状态'),
            array('score','积分'),
            array('member_list_relname','真实姓名'),
            array('member_list_identity','身份证号'),
            array('member_list_email','邮箱'),
            array('member_status','会员身份'),
            array('car_model','车型'),
            array('car_insurance','车辆保险'),
            array('car_annual_inspection','车辆年检信息'),
        );
$search = I("search");
if($search){
if($search['open']){
    if($search['open'] == '1'){
$map['member_list_open'] = 1;
}else if($search['open'] == '2'){
$map['member_list_open'] = 2;
}else{
$map['member_list_open'] = 3;
}
    }
    if($search['member_status']){
    if($search['member_status'] == '1'){
    $map['member_status'] = 1;
    }else{
$map['member_status'] = 2;
    }
    }
if($search['nickname']){
    $map['member_list_nickname'] = array('like',"%".$search['nickname']."%");
    }
}
$member_list=M('Member_list')->where($map)->order('member_list_id desc')->select();
foreach ($member_list as $k => $v){
//登录用户名
$member_list[$k]['member_list_username'] =$v['member_list_username'];
//手机
$member_list[$k]['member_list_tel'] =$v['member_list_tel'];
//车型
$member_list[$k]['car_model'] =$v['car_model'];
//车辆保险
$member_list[$k]['car_insurance'] =$v['car_insurance'];
//车辆年检信息
$member_list[$k]['car_annual_inspection'] =$v['car_annual_inspection'];
//签名
$member_list[$k]['signature'] =$v['signature'];
//积分
$member_list[$k]['score'] =$v['score'];
//真实姓名
$member_list[$k]['member_list_relname'] =$v['member_list_relname'];
//邮箱
$member_list[$k]['member_list_email'] =$v['member_list_email'];
//身份证号
$member_list[$k]['member_list_identity'] =$v['member_list_identity'];
//添加时间
if(!empty($v['member_list_addtime'])){
$member_list[$k]['member_list_addtime'] = date('Y-m-d H:i:s',$v['member_list_addtime']);
}
//审核状态
if($v['member_list_open'] == '1'){
$member_list[$k]['member_list_open'] = '待审核';
}
else if($v['member_list_open'] == '2'){
$member_list[$k]['member_list_open'] = '已通过';
}
else{
$member_list[$k]['member_list_open'] = '未通过';
}
// 禁用状态
if($v['user_status'] == '0'){
$member_list[$k]['user_status'] = '未禁用';
}
else{
$member_list[$k]['user_status'] = '已禁用';
}
// 会员身份
if($v['member_status'] == '1'){
$member_list[$k]['member_status'] = '乘客';
}
else{
$member_list[$k]['member_status'] = '司机';
}
//城市地址
$cityname = getAddress($v['member_list_province'],$v['member_list_city'],$v['member_list_town']);
$member_list[$k]['address_detail'] = $cityname;
unset($member_list[$k]['member_list_province']);
unset($member_list[$k]['member_list_city']);
unset($member_list[$k]['member_list_town']);
// 性别
if($v['member_list_sex'] == '1'){
$member_list[$k]['member_list_sex'] = '男';
}
else if($v['member_list_sex'] == '2'){
$member_list[$k]['member_list_sex'] = '女';
}
else{
$member_list[$k]['member_list_sex'] = '保密';
}
}
        exportExcel($expzTitle,$expCellName,$member_list);
}



共用方法function.php中需要写入这个方法

 function exportExcel($expzTitle,$expCellName,$expTableData){
        $xlsTitle = iconv('utf-8', 'gb2312', $expzTitle);//文件名称
        $fileName = date('_YmdHis');//or $xlsTitle 文件名称可根据自己情况设定
        $cellNum = count($expCellName);
        $dataNum = count($expTableData);
        vendor("PHPExcel.Classes.PHPExcel");
        $objPHPExcel = new \PHPExcel();
        $cellName = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','AA','AB','AC','AD','AE','AF','AG','AH','AI','AJ','AK','AL','AM','AN','AO','AP','AQ','AR','AS','AT','AU','AV','AW','AX','AY','AZ');        
        $objPHPExcel->getActiveSheet(0)->mergeCells('A1:'.$cellName[$cellNum-1].'1');//合并单元格
        for($i=0;$i<$cellNum;$i++){
            $objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i].'2', $expCellName[$i][1]);
        }
        for($i=0;$i<$dataNum;$i++){
          for($j=0;$j<$cellNum;$j++){
            $objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j].($i+3), ' '.$expTableData[$i][$expCellName[$j][0]]);
          }             
        }
        for($j=0;$j<$cellNum;$j++){
            $objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j].($i+3), ' '.$expTableData[$i][$expCellName[$j][0]]);
        }                      
        for($j=0;$j<$cellNum;$j++){
            $objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j].($i+3), $expTableData[$i][$expCellName[$j][0]]);
        }       
        ob_end_clean();//清除缓冲区,避免乱码
        header('pragma:public');
        header('Content-type:application/vnd.ms-excel;charset=utf-8;name="'.$xlsTitle.'.xls"');
        header("Content-Disposition:attachment;filename=$fileName.xls");//attachment新窗口打印inline本窗口打印
        $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
        $objWriter->save('php://output');
        exit;
    }


最后在ThinkPHP\Library\Vendor文件下导入PHPexcel文件即可  注意在exportExcel方法中注意要清楚缓存不然会乱码


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值