Développement Laravel : Comment utiliser Laravel Excel pour implémenter l'import et l'export Excel ?
En développement, les tableaux Excel sont souvent utilisés pour le traitement des données, comme l'importation et l'exportation de données. Laravel Excel est une extension Laravel simple et puissante qui nous permet de traiter facilement les fichiers Excel, y compris les opérations de lecture, d'écriture et d'exportation de fichiers Excel. Dans cet article, nous présenterons comment implémenter l'importation et l'exportation Excel à l'aide de Laravel Excel.
Utiliser Laravel Excel dans un projet Laravel est très simple, il suffit d'ajouter le package laravel-excel au composer.json fichier Dépendez-en simplement. Exécutez la commande suivante dans la ligne de commande :
composer require maatwebsite/excel
Après avoir installé Laravel Excel, nous devons effectuer une configuration pour utiliser il. Tout d'abord, ajoutez le code suivant au fichier config/app.php :
'providers' => [ // ... MaatwebsiteExcelExcelServiceProvider::class, ], 'aliases' => [ // ... 'Excel' => MaatwebsiteExcelFacadesExcel::class, ],
Ensuite, nous devons publier le fichier de configuration Laravel Excel et exécuter la commande suivante :
php artisan vendor:publish --provider="MaatwebsiteExcelExcelServiceProvider" --tag=config
Ce sera dans Un fichier excel.php est généré dans le répertoire de configuration Nous pouvons faire certaines configurations dans ce fichier, comme le format du fichier d'export, le nom du fichier d'export par défaut, etc.
Ensuite, nous présenterons comment utiliser Laravel Excel pour exporter des fichiers Excel.
3.1 Créer une classe d'exportation
Tout d'abord, nous devons créer une classe d'exportation pour définir le format et le contenu des données exportées. Exécutez la commande suivante dans la ligne de commande :
php artisan make:export UsersExport --model=User
Cela générera une classe UsersExport dans le répertoire app/Exports, dans laquelle le format des données et le contenu du fichier Excel exporté pourront être définis. Par exemple, si l'on souhaite exporter les données de la table user, on peut définir le contenu suivant dans cette classe :
namespace AppExports; use AppModelsUser; use MaatwebsiteExcelConcernsFromCollection; class UsersExport implements FromCollection { public function collection() { return User::all(); } }
Dans le code ci-dessus, on précise via l'interface FromCollection que la source du les données exportées se trouvent toutes dans les données utilisateur du modèle utilisateur.
En plus de l'interface FromCollection, Laravel Excel propose également d'autres interfaces, telles que FromQuery et FromView, etc. Vous pouvez choisir l'interface correspondante en fonction des besoins réels.
3.2 Utilisez la classe d'exportation pour exporter des fichiers Excel
Après avoir défini la classe d'exportation, nous pouvons appeler la classe d'exportation via le code suivant pour exporter les données vers le fichier Excel : #🎜🎜 #
use AppExportsUsersExport; use MaatwebsiteExcelFacadesExcel; public function export() { return Excel::download(new UsersExport, 'users.xlsx'); }Dans le code ci-dessus, nous utilisons la méthode Excel::download() pour générer le fichier Excel, où le premier paramètre est l'objet de classe d'exportation qui vient d'être créé et le deuxième paramètre est le nom de le fichier Excel.
php artisan make:import UsersImport --model=UserCela générera une classe UsersImport dans le répertoire app/Imports, dans laquelle le format des données et le contenu du fichier Excel importé pourront être définis. Par exemple, si nous voulons importer des données de la table utilisateur, nous pouvons définir le contenu suivant dans cette classe :
namespace AppImports; use AppModelsUser; use MaatwebsiteExcelConcernsToModel; use MaatwebsiteExcelConcernsWithHeadingRow; class UsersImport implements ToModel, WithHeadingRow { public function model(array $row) { return new User([ 'name' => $row['name'], 'email' => $row['email'], 'password' => Hash::make($row['password']), ]); } }Dans le code ci-dessus, nous mappons chaque ligne de données du fichier Excel au Modélisez l'utilisateur via l'attribut d'interface ToModel et spécifiez la première ligne du fichier Excel comme en-tête (c'est-à-dire le nom de l'attribut) via l'interface WithHeadingRow. En plus des interfaces ToModel et WithHeadingRow, Laravel Excel fournit également d'autres interfaces, telles que ToCollection et ToModel, etc. Vous pouvez choisir l'interface correspondante en fonction des besoins réels. 4.2 Utilisez la classe d'importation pour importer des fichiers Excel Après avoir défini la classe d'importation, nous pouvons appeler la classe d'importation via le code suivant pour importer les données du fichier Excel dans le base de données :
use AppImportsUsersImport; use MaatwebsiteExcelFacadesExcel; public function import() { Excel::import(new UsersImport, request()->file('file')); return redirect()->back(); }Dans le code ci-dessus, nous utilisons la méthode Excel::import() pour importer le fichier Excel, où le premier paramètre est l'objet de classe d'importation qui vient d'être créé et le deuxième paramètre est le fichier Excel téléchargé.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!