habe Fehler bekommen
memory_limit = 1536M - Ich kann nicht mehr einstellen
mein Code
Excel::download(new ReportExport($data), 'excel.xlsx');
$data
it Sammlungsdaten mit 500000 Zeilen +
Wie kann ich so viele Daten schreiben?
Ihr PHP-Prozess hat nicht genügend Speicher, wenn Sie Ihre Ansichtsdatei lesen. Ich denke, 500000 Zeilen sind etwas zu viel für die FromView-Strategie. Sie können den Ansatz dieses Artikels ausprobieren: https://stefanzweifel.io/posts/lazy-collections-in-laravel-excel/
Ihr PHP-Prozess hat nicht genügend Speicher, wenn Sie Ihre Ansichtsdatei lesen. Ich denke, 500000 Zeilen sind etwas zu viel für die FromView-Strategie. Sie können den Ansatz dieses Artikels ausprobieren: https://stefanzweifel.io/posts/lazy-collections-in-laravel-excel/
Ich kann cursor () nicht verwenden, da Laravel Version: 5.5. * Verwendet wird. Und ich bekomme die Daten nicht nur aus der Datenbank durch Berechnungen in PHP, weil die Datenbank solche Berechnungen nicht zulässt. In jedem Fall werde ich ein Array mit 500.000 Zeilen haben, bevor ich es der Generator-Excel-Datei gebe.
@patrickbrouwers Ich habe den Ansatz aus dem Artikel ausprobiert, aber ich bekomme:
Return value of Maatwebsite\Excel\QueuedWriter::exportCollection() must be an instance of Illuminate\Support\Collection, instance of Illuminate\Support\LazyCollection returned
@fedeisas Welche Version von Laravel benutzt du?
@patrickbrouwers
laravel/framework v6.18.1 The Laravel Framework.
maatwebsite/excel 3.1.19 Supercharged Excel exports and imports in Laravel
phpoffice/phpspreadsheet 1.11.0 PHPSpreadsheet - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine
Ich verwende Schreibvorgänge in der Warteschlange. Vielleicht ist das das Problem?
Ich versuche, Exporte für verteilte Worker (mit S3) durchzuführen, und das FromQuery
ist schmerzhaft langsam (1 Stunde für einen Export von 30.000 Zeilen).
Also versuche ich ohne Glück zu faulen Sammlungen und cursor()
zu wechseln.
@fedeisas use queue ist mit Fehler fehlgeschlagen
Return value of Maatwebsite\Excel\QueuedWriter::exportCollection() must be an instance of Illuminate\Support\Collection, instance of Illuminate\Support\LazyCollection returned
aber Excel :: Download ist in Ordnung
Ich kann immer noch keine 60K-Daten mit FromQuery-Bedenken oder LazyCollection mit 512M-Speichereinstellung exportieren
Gibt es eine andere Einstellung, um dies zu implementieren?
https://stefanzweifel.io/posts/lazy-collections-in-laravel-excel/
Hilfreichster Kommentar
@fedeisas use queue ist mit Fehler fehlgeschlagen
Return value of Maatwebsite\Excel\QueuedWriter::exportCollection() must be an instance of Illuminate\Support\Collection, instance of Illuminate\Support\LazyCollection returned
aber Excel :: Download ist in Ordnung