#laravel-excel
#laravel-excel
Вопрос:
Я пытался использовать Laravel Excel с несколькими листами и shouldQueue
, но файл возвращался с пустым листом, хотя весь лист был создан успешно.
Комментарии:
1. Возможно, вам потребуется опубликовать то, что вы уже пробовали.
2. я думаю, проблема в размере памяти, поскольку данные файла огромны, мне удается обойти проблему, ограничив лист, вместо того, чтобы сбрасывать всю запись в 1 файл
Ответ №1:
Мне удается обойти проблему, ограничив запись на файл
вот код
<?php
namespace AppExports;
use AppExportsSheetsAnswersPerSchoolSheet;
use IlluminateContractsQueueShouldQueue;
use IlluminateSupportFacadesDB;
use MaatwebsiteExcelConcernsExportable;
use MaatwebsiteExcelConcernsWithMultipleSheets;
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;
}
}