Posted in

Laravel devolver la colección al importar un Excel

Si necesitamos por ejemplo hacer un preview de los datos importados de un Excel, lo haremos de la siguiente forma:

MembersImportPreview.php

<?php

namespace App\Imports;

use Illuminate\Support\Collection;
use Maatwebsite\Excel\Concerns\ToCollection;
use Maatwebsite\Excel\Concerns\WithStartRow;

class MembersImportPreview implements ToCollection, WithStartRow
{
    public $data;

    public function startRow(): int
    {
        return 2;
    }

    public function collection(Collection $collection){
        /*return view('backoffice.member.members-import-preview')->with(array(
            'members' => $collection
        ));*/
        $this->data = $collection;
    }
}

Donde devolveremos en data la colección al controlador.

MembersController.php

$import = new \App\Imports\MembersImportPreview;
        \Excel::import($import, $path . '/' . $excel);
        print_r($import);

Esto imprimirá todos los registros importados del Excel.

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *


The reCAPTCHA verification period has expired. Please reload the page.