head = $head; $this->body = $body; } public function export() { $fileName = date('YmdHis') . '-' . uniqid(); $this->ndata = array(); foreach ($this->getData() as $datum=>$value) { $username=''; $examname=''; $sclassinfo=''; $name = User::where('id',$value['user_id'])->select("name","school_id","sclass_id","grade_id")->first(); if($name){ $username = $name['name']; $school_name = School::where("id",$name['school_id'])->select('name')->first(); if($school_name){ $school_name = $school_name['name']; } $grade = Grade::where("id",$name['grade_id'])->select('name')->first(); if($grade){ $grade = $grade['name']; } $sclass = Sclass::where("id",$name['sclass_id'])->select('name')->first(); if($sclass){ $sclass = $sclass['name']; } $exam = Examarg::where('id',$value['examarg_id'])->select('name')->first(); if($exam){ $examname = $exam['name']; } } $this->ndata[]=array( '编号'=>$datum+1, '姓名'=>$username, '学校' => $school_name, '年级'=>$grade, '班级'=>$sclass, '试卷名称'=>$examname, '成绩'=>$value['grade'], '考试时间'=> $value['created_at'] ); } // dd($this->ndata); Excel::create($fileName, function($excel) { $excel->sheet('学生成绩', function($sheet) { // 这段逻辑是从表格数据中取出需要导出的字段 $head = ['编号', '姓名', '学校', '年级', '班级', '试卷名称','成绩','考试时间']; $rows = collect([$head]); $sheet->rows($rows); $rows = collect($this->ndata)->map(function ($item) { // dd($this->getData()); return array_only($item, ['编号', '姓名', '学校', '年级', '班级', '试卷名称','成绩','考试时间']); }); // dd($rows); $sheet->rows($rows); }); })->export('xls'); } }