问题描述
我尝试将Laravel excel与多个工作表和shouldQueue
一起使用,但是该文件返回了一个空工作表,尽管所有工作表都已成功创建。
解决方法
我设法限制每个文件的记录
这是代码
<?php
namespace App\Exports;
use App\Exports\Sheets\AnswersPerSchoolSheet;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Support\Facades\DB;
use Maatwebsite\Excel\Concerns\Exportable;
use Maatwebsite\Excel\Concerns\WithMultipleSheets;
class AnswersExport implements WithMultipleSheets,ShouldQueue
{
use Exportable;
public function __construct($start,$end)
{
$this->start = $start;
$this->end = $end;
}
public function sheets(): array
{
$sheets = [];
$schools = DB::table('schools')
->join('answers','schools.id','=','answers.school_id')
->select('schools.id')
->distinct('schools.id')
->whereBetween('schools.id',[$this->start,$this->end])
->get();
foreach ($schools as $school) {
$sheets[] = new AnswersPerSchoolSheet($school->id);
}
return $sheets;
}
}