Lire un fichier csv avec Laravel

28 March 2018

J’avais besoin de lire un fichier CSV pour remplir une base de donnée Laravel. C’est assez simple à faire car il y a une super lib pour gérer le CSV :

composer require League/csv

On lit le CSV et on boucle sur chaque élément. Après on en fait ce qu’on veut :) !

<?php
use Illuminate\Database\Seeder;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Log;
use League\Csv\Reader;
use League\Csv\Statement;

class commune extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        // Remplir la base de donnée avec les communes du fichier CSV

        // Lire le fichier csv
        $csv = Reader::createFromPath(storage_path('app/communes_belges.csv'));
        $csv->setHeaderOffset(0);

        // Boucler sur les données du fichier csv
        $records = (new Statement())->process($csv);
        foreach ($records->getRecords() as $record) {
            var_dump($record);
        }
    }
}