Maison >cadre php >Laravel >Développement Laravel : Comment utiliser Laravel Excel pour implémenter l'import et l'export Excel ?

Développement Laravel : Comment utiliser Laravel Excel pour implémenter l'import et l'export Excel ?

王林
王林original
2023-06-13 14:55:002805parcourir

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.

  1. Installer 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
  1. Configuring Laravel 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.

  1. Exportation de fichiers Excel

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.

    Importation de fichiers Excel
Ensuite, nous présenterons comment utiliser Laravel Excel pour importer des fichiers Excel.

4.1 Créer une classe d'importation

Tout d'abord, nous devons créer une classe d'importation pour définir le format et le contenu des données importées. Exécutez la commande suivante dans la ligne de commande :

php artisan make:import UsersImport --model=User

Cela 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é.

    Conclusion
Avec Laravel Excel, nous pouvons facilement implémenter les fonctions d'importation et d'exportation de fichiers Excel, simplifiant considérablement le processus de traitement des données. Dans le développement de projets réels, l'utilisation de Laravel Excel peut considérablement améliorer l'efficacité du développement et réduire les coûts de développement. J'espère que cet article vous sera utile.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn