Tutoriel Laravel 8 Importer et Exporter un fichier Excel et CSV - Letecode
Suivez nous
@johnmbiya - 15 octobre 2021 172 dans Laravel

Tutoriel Laravel 8 Importer et Exporter un fichier Excel et CSV

Cet article fournira un exemple de laravel 8, importer et exporter excel. vous apprendrez comment importer et exporter un fichier CSV depuis la base de données

Tutoriel Laravel 8 Importer et Exporter un fichier Excel et CSV

Dans cet exemple, j'ai écrit un script complet expliquant comment importer un fichier csv dans la base de données en utilisant laravel 8 et comment exporter un fichier csv à partir de la base de données dans laravel 8. vous pouvez facilement télécharger un fichier excel et csv à partir de la base de données dans laravel 8.

Dans cet exemple, nous utiliserons le package composer  maatwebsite/excel pour les tâches d'importation et d'exportation. maatwebsite/excel fournit un moyen facile d'importer et d'exporter à l'aide d'un modèle de base de données. maatwebsite/excel a mis à jour la version 3 et ils offrent un excellent moyen d'importer des données et d'exportation à partir de la base de données, alors suivez ses quelques étapes pour obtenir un exemple.

Étape 1 : Installez Laravel 8

Ici, nous devons installer l'application Laravel 8 à l'aide de la commande ci-dessous. Ouvrez donc votre terminal OU l'invite de commande et exécutez la commande ci-dessous :

compositeur create-project --prefer-dist laravel/laravel Fileblog

Étape 2 : Installez le package maatwebsite/excel

Dans cette étape, nous devons installer le package maatwebsite/excel via le gestionnaire de packages Composer, donc tapez cette commande sur votre terminal :

composer require maatwebsite/excel

Ouvrez maintenant le fichier config/app.php et ajoutez le fournisseur de services et l'alias.

config/app.php

'providers' => [
....
Maatwebsite\Excel\ExcelServiceProvider::class,
],
'alias' => [
....
'Excel' => Maatwebsite\Excel\Facades\Excel::class,
],

 

Étape 3 : Créer des enregistrements factices

Dans cette étape, nous devons exiger une table "users" avec des enregistrements factices, afin que nous puissions simplement importer et exporter. Vous devez donc d'abord exécuter la migration par défaut fournie par laravel à l'aide de la commande suivante :

php artisan migrate

Après cela, nous devons exécuter la commande suivante pour générer des utilisateurs factices :

php artisan tinker
User::factory()->count(20)->create()

 

Étape 4 : ajouter des routes

Dans cette étape, nous devons créer les route du fichier d'import-export. alors ouvrez votre fichier "routes/web.php" et ajoutez les routes suivantes.

 

routes/web.php

<?php 
use Illuminate\Support\Facades\Route;    
use App\Http\Controllers\MyController;



/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
  
Route::get('importation-fichiers', [FileController::class, 'importExportView']);
Route::get('export', [FileController::class, 'export'])->name('export');
Route::post('import', [MyController::class, 'import'])->name('import');

 

Étape 5 : Créer une classe d'importation

Dans maatwebsite 3, la version fournit un moyen de construire une classe d'importation et nous devons l'utiliser dans le contrôleur. Ce serait donc un excellent moyen de créer une nouvelle classe d'importation. Vous devez donc exécuter la commande suivante et modifier le code suivant sur ce fichier :

php artisan make:import UsersImport --model=User

app/Imports/UsersImport.php

<?php
namespace App\Imports;
use App\Models\User;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
  
class UsersImport implements ToModel, WithHeadingRow
{
    /**
    * @param array $row
    *
    * @return \Illuminate\Database\Eloquent\Model|null
    */
    public function model(array $row)
    {
        return new User([
            'name'     => $row['name'],
            'email'    => $row['email'], 
            'password' => \Hash::make($row['password']),
        ]);
    }
}

 

Vous pouvez télécharger le fichier csv de démonstration à partir d'ici : Fichier CSV de démonstration .

 

Étape 6 : Créer une classe d'exportation

La version maatwebsite 3 fournit un moyen de construire une classe d'exportation et nous devons l'utiliser dans le contrôleur. Ce serait donc un excellent moyen de créer une nouvelle classe d'exportation. Vous devez donc exécuter la commande suivante et modifier le code suivant sur ce fichier :

 

php artisan make:export UsersExport --model=User

 

app/Exports/UsersExport.php

<?php
  
namespace App\Exports;
  
use App\Models\User;
use Maatwebsite\Excel\Concerns\FromCollection;
  
class UsersExport implements FromCollection
{
    /**
    * @return \Illuminate\Support\Collection
    */
    public function collection()
    {
        return User::all();
    }
}

 

Étape 7 : Créer un contrôleur

Dans cette étape, nous devons maintenant créer un nouveau contrôleur en tant que FileController dans ce chemin "app/Http/Controllers/FileController.php". ce contrôleur gérera tous les importExportView, les demandes d'exportation et d'importation et les réponses de retour, alors placez le contenu ci-dessous dans le fichier du contrôleur :

 

app/Http/Controllers/FileController.php

<?php
     
namespace App\Http\Controllers;
    
use Illuminate\Http\Request;
use App\Exports\UsersExport;
use App\Imports\UsersImport;
use Maatwebsite\Excel\Facades\Excel;
    
class FileController extends Controller
{
    /**
    * @return \Illuminate\Support\Collection
    */
    public function importExportView()
    {
       return view('import');
    }
     
    /**
    * @return \Illuminate\Support\Collection
    */
    public function export() 
    {
        return Excel::download(new UsersExport, 'users.xlsx');
    }
     
    /**
    * @return \Illuminate\Support\Collection
    */
    public function import() 
    {
        Excel::import(new UsersImport,request()->file('file'));
             
        return back();
    }
}

 

Étape 8 : Créer un fichier Blade

Dans la dernière étape, créons import.blade.php(resources/views/import.blade.php) pour la mise en page et nous écrirons le code de conception ici et mettrons le code suivant :

 

resources/views/import.blade.php

 

<!DOCTYPE html>
<html>
<head>
  <title>Laravel 8 Importer et Exporter Excel dans la base de données Example - letecode.com</title>
    <link rel="stylesheet" href="<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous"> " />
</head>
<body>
<div class="container">
    <div class="card bg-light mt-3">
        <div class="card-header">
          Laravel 8 Importer et Exporter Excel dans la base de données Example - letecode.com
        </div>
        <div class="card-body">
            <form action="{{ route('import') }}" method="POST" enctype="multipart/form-data">
                @csrf
                <input type="file" name="file" class="form-control">
                <br>
                <button class="btn btn-success">Import User Data</button>
                <a class="btn btn-warning" href="{{ route('export') }}">Export User Data</a>
            </form>
        </div>
    </div>
</div>
</body>
</html>

Vous pouvez maintenant vérifier votre application laravel 8.

Nous sommes maintenant prêts à exécuter notre exemple, alors exécutez la commande ci-dessous pour exécuter rapidement :

php artisan serve

Vous pouvez maintenant ouvrir l'URL ci-dessous sur votre navigateur :

http://localhost:8000/importation-fichiers

 

@johnmbiya
Jean Claude Mbiya (johnmbiya)

je suis developper fullstack, Dévelopeur android (AAD), créateur de letecode.com, bloggeur, formateur, fondateur de Guide Light System, j'aime la science informatique 😎👨‍💻

P : 386 7 7 24
Abonnez vous !

Recevez les dernières nouvelles de letecode directement dans votre boîte de réception. Réjoignez +500 Abonnés, Nous n'envoyons pas des spam !

Voir plus

macOS Monterey est disponible : comment installer, quelles sont les nouveautés et les compatibilités ?

macOS Monterey est la dix-huitième version majeure de macOS succédant à macOS Big Sur. Le système d'exploitation est annoncé à la conférence des développeurs Apple le 7 juin 2021 et est disponible depuis le 25 octobre

johnmbiya 26 octobre 2021 Apple