123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- <?php
- /**
- * Created by PhpStorm.
- * User: wenzhi
- * Date: 2019/2/18
- * Time: 2:25 PM
- */
- namespace App\Admin\Extensions;
- namespace App\Admin\Extensions;
- use App\Examarg;
- use App\Grade;
- use App\School;
- use App\Sclass;
- use App\User;
- use Encore\Admin\Grid\Exporters\AbstractExporter;
- use Maatwebsite\Excel\Facades\Excel;
- use PHPExcel_Worksheet_Drawing;
- class ExcelExpoter extends AbstractExporter{
- protected $head = [];
- protected $body = [];
- public function setAttr($head, $body){
- $this->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');
- }
- }
|