Laravel-excel: [سؤال] حجم الذاكرة المسموح به. علة أم لا؟

تم إنشاؤها على ١٠ مارس ٢٠٢٠  ·  8تعليقات  ·  مصدر: Maatwebsite/Laravel-Excel

المتطلبات الأساسية

إصدارات

  • إصدار PHP: 7.1
  • إصدار Laravel: 5.5. *
  • إصدار الحزمة: ^ 3.0

وصف

حصلت على خطأ
image

معلومة اضافية

memory_limit = 1536M - لا يمكنني تعيين المزيد
رمز بلدي
image

Excel::download(new ReportExport($data), 'excel.xlsx');

$data يجمع البيانات مع 500000 صف +
كيف يمكنني كتابة الكثير من البيانات؟

question

التعليق الأكثر فائدة

fedeisas فشل استخدام قائمة الانتظار بسبب الخطأ
Return value of Maatwebsite\Excel\QueuedWriter::exportCollection() must be an instance of Illuminate\Support\Collection, instance of Illuminate\Support\LazyCollection returned
لكن Excel :: التنزيل على ما يرام

ال 8 كومينتر

تنفد ذاكرة عملية PHP الخاصة بك عند قراءة ملف العرض الخاص بك. أعتقد أن 500000 صف أكثر من اللازم بالنسبة لاستراتيجية FromView. يمكنك تجربة النهج الذي اتبعه هذا المقال: https://stefanzweifel.io/posts/lazy-collections-in-laravel-excel/

تنفد ذاكرة عملية PHP الخاصة بك عند قراءة ملف العرض الخاص بك. أعتقد أن 500000 صف أكثر من اللازم بالنسبة لاستراتيجية FromView. يمكنك تجربة النهج الذي اتبعه هذا المقال: https://stefanzweifel.io/posts/lazy-collections-in-laravel-excel/

لا يمكنني استخدام المؤشر () لأن إصدار Laravel: 5.5. *. وأحصل على البيانات ليس فقط من قاعدة البيانات ، من خلال الحسابات في php ، لأن قاعدة البيانات لا تسمح بمثل هذه الحسابات. على أي حال ، سيكون لدي صفيف به 500000 صف ، قبل أن أعطيها إلى ملف Excel للمولد.

patrickbrouwers لقد جربت النهج من المقالة لكني حصلت على:

Return value of Maatwebsite\Excel\QueuedWriter::exportCollection() must be an instance of Illuminate\Support\Collection, instance of Illuminate\Support\LazyCollection returned

fedeisas أي إصدار من Laravel تستخدمه؟

تضمين التغريدة

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

أنا أستخدم عمليات الكتابة في قائمة الانتظار. ربما هذه هي المشكلة؟

أحاول القيام بالتصدير على العمال الموزعين (باستخدام S3) و FromQuery بطيء بشكل مؤلم (ساعة واحدة لتصدير 30 ألف صف).

لذلك أحاول التبديل إلى المجموعات البطيئة و cursor() بدون حظ.

fedeisas فشل استخدام قائمة الانتظار بسبب الخطأ
Return value of Maatwebsite\Excel\QueuedWriter::exportCollection() must be an instance of Illuminate\Support\Collection, instance of Illuminate\Support\LazyCollection returned
لكن Excel :: التنزيل على ما يرام

ما زلت لا أستطيع تصدير بيانات 60K مع مخاوف FromQuery أو LazyCollection مع إعداد ذاكرة 512M

أي إعداد آخر لتنفيذ هذا؟
https://stefanzweifel.io/posts/lazy-collections-in-laravel-excel/

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات