Laravel Excel导出队列和MultipleSheet

问题描述

我尝试将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;
    }
}

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...