• 07-02-2016, 07:47:26
    #1
    Arkadaşlar merhaba,

    Laravel 5 üzerine Maatwebsite/Laravel-Excel eklentisini kurdum. Tablomda 40 bin kayıt var. Düz PHP ile excel export import işlemi kısa sürüyor. Laravel ve eklentisiyle bu işlem çok uzun bir süre alıyor bazen de hata veriyor.

    Daha önce bu konu hakkında çalışmış olan arkadaşlar var mı? Nerde hata yapıyor olabilirim? Yardımcı olursanız sevinirim.


    Kodum aşağıdaki gibidir.
    $users = araclar::select('plaka','seri_no','cari','malzeme_adi','teslim_alan')->get();
    Excel::create('users', function($excel) use($users) {
        $excel->sheet('Sheet 1', function($sheet) use($users) {
            $sheet->fromArray($users);
        });
    })->export('xls');
    İyi Çalışmalar.
  • 07-02-2016, 12:44:10
    #2
    Hocam bu konu hakkında herhangi bir çalışmam olmadı ama bir kaç ipucu vermeye çalışacağım. Umarım yardımcı olur.

    Öncelikle laravel 5 php 7 ile daha hızlı çalıştığı benchmark testleri ile sabit. Lumen Laravel den daha hızlı. Laravel yerine Lumen kullanabilirsiniz. Ayrıca bu işlem tek seferlik bir işlemse hiç framework kullanmadan halletmeye calisabirlsiniz.


    Telefondan yazdım cümleler düşük olabilir
  • 07-02-2016, 12:50:25
    #3
    Cevap için tşkler öncwelikle hocam ya ne yaptıysam olmadı PHP 7 de denedim.

    Tek seferlik bir işlem olmayacak kullanıcıdan alınan veriler doğrultusunda excel çıktı verilecek ama 20 bin kaydın üzerinde saçmalamaya başlıyor. Ücretli/ücretsiz yardımcı olabilen olursa sevinirim.
  • 08-02-2016, 20:15:35
    #4
    Fazla Laravel bilgim yok, ama gördüğüm kadarıyla; verileri normal çekmeye çalışırsanız, tümünü memory'e yükler ve şişirir. Eloquent'de chunk methodu varmış bu, verileri parça parça çekmek için. Böyle olursa, isterse 1 milyon kayıt olsun, memory'de hep sizin belirlediğiniz kadar kayıt olur, memory yüzünden patlamazsınız(tabi verilere başka referans yoksa, Doctrine'de Identity Map vardı, Laravel'de aradım bulamadım, eğer Laravel'dede identity map'e benzer bir yapı varsa, ondanda silmeniz gerekiyor veriyi).

    Kullandığınız Excel eklentisi PHPExcel kullanıyor, oda büyük verilerde sıkıntı çıkartabiliyor. Şu kütüphaneyi kullanmanızı öneririm.