laravel导出excel表格

首先是表单代码

<body
        <button type="button" style="float: right" class="layui-btn" id="prize_data_excel">导出excel</button>
</body>
<script>
$('#prize_data_excel').click(function(){
                    var url = '<?php echo env('APP_URL').'/weikuan_data_execl?start_time='; ?>'+start_time+'&end_time='+end_time;
                    window.location.href = url;
                });
</script>

写一个按钮,访问接口,接口路由如下

Route::any('/weikuan_data_execl','Activity\ActivityController@weikuan_date_excel');

这里如果不需要前端有入口的话,直接访问路由就可以导出excel表格。

下边是控制器代码

 public function weikuan_date_excel(Request $request,Excel $excel){
        $start_time=$request->input('start_time');
        $end_time=$request->input('end_time');
        $all_mess = DB::table('deposit_orders')
            ->whereBetween('add_time',[$start_time,$end_time])
            ->where(['order_type'=>1,'status'=>2])
            ->where('pay_amount','>=',1)
            ->select('uid','course_id')
            ->get();

        foreach ($all_mess as $k =>$v){
            $res = DB::table('baoming_info')->where(['ispay'=>2,'course_id'=>$v->course_id,'uid'=>$v->uid])->first();
             if(!empty($res)){
                 unset($all_mess[$k]);
             }
        }
        foreach ($all_mess as $k=>&$v){
             $user =DB::table('users')->where('uid',$v->uid)->select('user_name','mobile')->first();
            if(empty($user)){
                unset($all_mess[$k]);
            }else{
                $v->name = $user->user_name;
                $v->mobile= $user->mobile;
                $v->course_name=DB::table('course')->where('course_id',$v->course_id)->value('course_title');
            }

        }

        $all_mess=$all_mess->toArray();
        $res=[];
        foreach ($all_mess as $k=>&$v){
            $res[]=(array)$v;
        }
        $bt[]=[

        ];
        $this->excel($res,$excel,$bt);
    }

    public function excel($data,$excel,$bt){

        $excel_title = '奖品数据'.date('Y-m-d H:i:s');
        $cellData = array_merge($bt,$data);
        $excel->create($excel_title,function($excel) use ($cellData){
            $excel->sheet('score', function($sheet) use ($cellData){
                $sheet->rows($cellData);
            });
        })->export('xls');

    }

这里,先把要导出的数据查出来,进行数据处理,最后导出excel。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值