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
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 :
composer 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
Voir plus
0 commentaire(s)
Posts similaires
Tutoriel Laravel 8 CRUD : insérer, Lire, modifier et supprimer
Laravel 9 : Quoi de neuf dans cette nouvelle version du framework ?
Tutoriel Laravel 8 Middleware pour les pages d'administration étape par étape
SQL injections : Injection de règle de validation en Laravel
Tutoriel Laravel 8 Importer et Exporter un fichier Excel et CSV
Catégories
Soyez au courant des dernières tendances
Abonnez-vous pour obtenir les meilleurs articles, tutoriels, astuces et informations !
Laissez votre commentaire à @johnmbiya