php 导出 Excel

来源:互联网 发布:画立绘用什么软件 编辑:程序博客网 时间:2024/05/18 00:43

前台页面的html代码                                

<button class="btn btn-xs btn-success" id="exportExcel">

                                    <i class="bigger-110 icon-only">导出Excel表格</i>

                                </button>

前台页面的js代码

                                    //导出
                                    $('#exportExcel').on('click', function () {
                                        var re = confirm("确定要导出全部数据吗?");
                                        if (re == true) {
                                            window.location.href = "{:U('Admin/Super/exportOrderListExcel')}";
                                            //跳到方法
                                        } else {
                                            //alert('您取消了');
                                            //取消了
                                        }
                                    });

后台的控制器     

   /*
     * 导出订单列表的excel
     * author tc
     */
    public function exportOrderListExcel(){
        //先查询数据(全部)
        $orderList = new OrderListService();
        $memberList = new MemberService();
        $map = '';
        $data = $orderList->orderIds($map,'*','created desc');
        foreach ($data as $k => $v) {
            $arrMid[] = $v['mid']; 
        }
        $arrMid = array_unique($arrMid);
        //查询会员名,城市,手机号
        $whereUser['id'] = array('in',$arrMid);
        $userResult = $memberList->getUserList($whereUser,'id,cellphone,nickname,city');
        foreach ($userResult as $key => $value) {
            $userResult[$value['id']] = $value;
        }
        foreach ($data as $key => $value) {
            $data[$key]['nickname'] = $userResult[$value['mid']]['nickname'];
            $data[$key]['city'] = $userResult[$value['mid']]['city'];
            $data[$key]['cellphone'] = $userResult[$value['mid']]['cellphone'];
        }
        $area = C('ZHONGKAO_AREA');
        $pay_status = array(0=>'未支付',2=>'支付成功');
        $payment = array(1=>'后台人工支付',2=>'微信支付',3=>'支付宝支付');
        $status = array(0=>'未完成',2=>'已完成');
        //开始导出
        $list[0] = array('order_id'=>'订单号','nickname'=>'会员名','cellphone'=> '手机号','city'=> '城市','total'=>'总价','pay_status'=>'支付状态','payment'=>'支付方式','status'=>'状态');
        $i = 1;
        foreach ($data as $k=>$v){
            $list[$i]['order_id'] = "'".$v['order_id']; //订单号
            $list[$i]['nickname'] = $v['nickname']; //会员名
            $list[$i]['cellphone'] = "'".$v['cellphone']; //手机号 
            $list[$i]['city'] = $area[$v['city']]; //城市
            $list[$i]['total'] = $v['total']; //总价
            $list[$i]['pay_status'] = $pay_status[$v['pay_status']]; //支付状态
            $list[$i]['payment'] = $payment[$v['payment']]; //支付方式
            $list[$i]['status'] = $status[$v['status']]; //状态
            $i++;
        }
        exportExcel($list);
        
    }




common/function 里面的一个公共方法  



    /*
     * excel导出
     */
    function exportExcel($data,$name='订单列表') {
        import('Com.PHPExcel.PHPExcel'); 
        $objPHPExcel = new \PHPExcel(); 
        $objPHPExcel->getProperties()->setCreator("甜甜")
                                    ->setLastModifiedBy("甜甜")
                                    ->setTitle("数据EXCEL导出")
                                    ->setSubject("数据EXCEL导出")
                                    ->setDescription("备份数据")
                                    ->setKeywords("excel")
                                    ->setCategory("result file");
         /*以下就是对处理Excel里的数据, 横着取数据,主要是这一步,其他基本都不要改*/
        foreach($data as $k => $v){
             $num=$k+1;
             $objPHPExcel->setActiveSheetIndex(0)
                         //Excel的第A列,uid是你查出数组的键值,下面以此类推
                          ->setCellValue('A'.$num, $v['order_id'])   
                          ->setCellValue('B'.$num, $v['nickname'])
                          ->setCellValue('C'.$num, $v['cellphone'])
                          ->setCellValue('D'.$num, $v['city'])
                          ->setCellValue('E'.$num, $v['total'])
                          ->setCellValue('F'.$num, $v['pay_status'])
                          ->setCellValue('G'.$num, $v['payment'])
                          ->setCellValue('H'.$num, $v['status']);
        }
        $objPHPExcel->getActiveSheet()->setTitle('User');
        $objPHPExcel->setActiveSheetIndex(0);
        
        header('Content-Type: application/vnd.ms-excel');
        header('Content-Disposition: attachment;filename="'.$name.'.xls"');
        header('Cache-Control: max-age=0');
        $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
        $objWriter->save('php://output');
        exit;
        
       
    }




还有一个文件夹和一个文件放在


(一般我们放在vendor里面,因为是公司项目所以就放在com里面)






0 0
原创粉丝点击