php excel 文件导出 快速导出方法封装

不多BB 直接上代码  有什么问题欢迎骚扰:qq:1209095456

使用语言:php 

使用框架:thinkphp

数据库:mysql

     /**
     * 函数用途描述:excel导出企业
     * @date: 2017年11月8日 下午3:54:21
     * @author: 魏博宇
     */
     public function qyexcel(){
         try {
             $where="1=1";
             if(I("searcont")){
                 $where.=" and unit_name like '%".I("searcont")."%'";
                 $this->assign("searcont",I("searcont"));
             }
             if(I("searid")){
                 $where.=" and unit_lable like '%".I("searid")."%'";
                 $this->assign("searid",I("searid"));
             }
               $szstr="unit_name,behalf_name,contact_name,contact_phone1,register_time,register_address,enterprise_scope,enterprise_spot,unit_introduction";
               $datalist=M("enterprise")->field($szstr)->where($where)->select();
               $headArr=array("单位名称:40","法人代表:15","联系人:15","联系电话:20","注册时间:20","注册地址:40","企业范围:30","企业亮点:30","单位简介:40");
               $this->getExcel("企业信息", $headArr, $datalist);
         } catch (\Exception $e) {
             $this->wby_alert("出现异常!");
         }
     }

    /**
    * 函数用途描述:导出excel
    * @param string $fileName 导出的文件名字  $filename="入库";
    * @param string $headArr 头部数组第二个代表这行的宽度  array("企业名称:30","法人代表:15");
    * @param $data 要到处的数据集合    
    * @date: 2017年6月7日 下午2:14:23
    * @author: 魏博宇
    */
    protected function getExcel($fileName,$headArr,$data){
        //导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入
        import("Org.Util.PHPExcel");
        import("Org.Util.PHPExcel.Writer.Excel5");
        import("Org.Util.PHPExcel.IOFactory.php");
        //对数据进行检验
        if(empty($data) || !is_array($data)){
            $this->wby_alert("该用户基础资料未填写!");
exit;
        }
        //检查文件名
        if(empty($fileName)){
$this->wby_alert("出现异常!");
            exit;
        }
         
        $date = date("Y-m-d",time());
        $fileName .= "{$date}.xls";
         
        //创建PHPExcel对象,注意,不能少了\
        //$objPHPExcel = new \PHPExcel_Autoloader();
        $objPHPExcel = new \PHPExcel();
        $objProps = $objPHPExcel->getProperties();
    
        //设置表头
        $key = ord("A");
        foreach($headArr as $v){
            $colum = chr($key);
            $xx=explode(":",$v);
            //设置每列的头部
            $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum.'1', $xx[0]);
            //设置第一列的宽度
            $objPHPExcel->getActiveSheet()->getColumnDimension($colum)->setWidth($xx[1]);
            //第一行居中
            $objPHPExcel->getActiveSheet()->getStyle($colum)->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
            //其他行居中
            $objPHPExcel->getActiveSheet()->getStyle($colum."1")->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
            $key += 1;
        }
        $column = 2;
        $objActSheet = $objPHPExcel->getActiveSheet();
        foreach($data as $key => $rows){ //行写入
            $span = ord("A");
            foreach($rows as $keyName=>$value){// 列写入
                $j = chr($span);
                $objActSheet->setCellValue($j.$column, $value);
                $span++;
            }
            $column++;
        }
         
        $fileName = iconv("utf-8", "gb2312", $fileName);
        //重命名表
        // $objPHPExcel->getActiveSheet()->setTitle('test');
        //设置活动单指数到第一个表,所以Excel打开这是第一个表
        $objPHPExcel->setActiveSheetIndex(0);
        header('Content-Type: application/vnd.ms-excel');
        header("Content-Disposition: attachment;filename=\"$fileName\"");
        header('Cache-Control: max-age=0');
         
        $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
        $objWriter->save('php://output'); //文件通过浏览器下载
        exit;
    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值