首先是表单代码
<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。