tp3.2生成execl表

控制器代码


    public function expUser(){
    
        if(session('is_inside') == 1){
              $data = M ('order as a')->join('yzb_express as b  on a.express_id = b.id')->field(' order_sn,goods_name,goods_version,goods_spec,goods_color,price,number,total,order_status,pay_status,express_fee,b.province,b.city,b.county,b.address,a.add_time')->order('a.id')->select();
        }else{
            
             $data = M ('order as a')->join('yzb_express as b  on a.express_id = b.id')->where(array('a.user_id' => session('id')))->field(' order_sn,goods_name,goods_version,goods_spec,goods_color,price,number,total,order_status,pay_status,express_fee,b.province,b.city,b.county,b.address,a.add_time')->order('a.id')->select();
            
        }

        foreach ($data as $k => $v)
        {
             
        }
        //导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入
        import("Org.Util.PHPExcel");
        import("Org.Util.PHPExcel.Writer.Excel5");
        import("Org.Util.PHPExcel.IOFactory.php");
        $filename="订单列表";
        $headArr=array("订单账号","商品名称","产品型号","产品规格","产品颜色","产品售价","产品数量","产品总价","订单状态","支付状态","快递费用","省","城市","县/区","收货地址","下单时间");
        $this->getExcel($filename,$headArr,$data);
    }

    private function getExcel($fileName,$headArr,$data){
        //对数据进行检验
        if(empty($data) || !is_array($data)){
            die("data must be a array");
        }
        //检查文件名
        if(empty($fileName)){
            exit;
        }
        $date = date("Y_m_d",time());
        $fileName .= "_{$date}.xls";
        //创建PHPExcel对象,注意,不能少了\
        $objPHPExcel = new \PHPExcel();
        $objProps = $objPHPExcel->getProperties();
        //设置宽度
        $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(16);
        //设置表头
        $key = ord("A");
        foreach($headArr as $v){
            $colum = chr($key);
            $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum.'1', $v);
            $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);
                $objPHPExcel->getActiveSheet()->SetCellValue($j.$column,' '.$value);
                $span++;
            }
            $column++;
        }
        $fileName = iconv("utf-8", "gb2312", $fileName);
    
        $objPHPExcel->setActiveSheetIndex(0);
        ob_end_clean();
        ob_start();
        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;

    }

 

前台页面

<div class="phpexcel">
    <a href="<?php echo U('expUser');?>" >导出数据生成excel</a>
</div>

下载的phpexecl放在ThinkPHP/Library/Org/Until下

posted @ 2017-12-23 18:34  郭帅  阅读(101)  评论(0)    收藏  举报