Maison  >  Article  >  cadre php  >  Développement Laravel : Comment lire et écrire des fichiers Excel avec Laravel Excel et PHPOffice ?

Développement Laravel : Comment lire et écrire des fichiers Excel avec Laravel Excel et PHPOffice ?

PHPz
PHPzoriginal
2023-06-13 17:57:582764parcourir

Avec l'utilisation généralisée des fichiers Excel dans les domaines commerciaux et financiers, l'intégration de fichiers Excel dans les applications web est devenue l'une des compétences requises par les développeurs. Puisque Laravel est un framework PHP populaire, il existe de nombreux packages dans son écosystème qui peuvent nous aider à lire et à écrire des fichiers Excel. Cet article explique comment utiliser la bibliothèque Laravel Excel et PHPOffice pour lire et écrire des fichiers Excel dans les applications Laravel.

Qu'est-ce que Laravel Excel ?

Laravel Excel est un puissant outil de traitement Excel développé pour le framework Laravel. Cet outil fournit une API facile à utiliser qui peut nous aider à importer et exporter facilement des fichiers Excel. L'un des principaux avantages de cet outil est qu'il permet une manipulation directe des fichiers Excel sans recourir au logiciel Excel.

L'installation de Laravel Excel peut être effectuée via Composer. Accédez au répertoire du projet Laravel dans le terminal et exécutez la commande Composer suivante :

composer require maatwebsite/excel

Cette commande téléchargera la dernière version de Laravel Excel depuis Packagist et terminera automatiquement le processus d'installation.

Comment exporter un fichier Excel en utilisant Laravel Excel ?

Laravel Excel fournit une classe Excel, qui est une classe proxy grâce à laquelle vous pouvez créer de nouveaux fichiers Excel ou ouvrir et modifier des fichiers Excel existants. Nous pouvons utiliser cette classe pour exporter des fichiers Excel dans l'application Laravel.

Créez un nouveau fichier Excel dans le projet, nous pouvons utiliser le modèle suivant fourni par Laravel Excel :

<?php

namespace AppExports;

use MaatwebsiteExcelConcernsFromCollection;
use MaatwebsiteExcelConcernsWithHeadings;

class ExampleExport implements FromCollection, WithHeadings
{
    public function headings(): array
    {
        return [
            'ID',
            'Name',
            'Email',
            'Phone',
        ];
    }

    /**
    * @return IlluminateSupportCollection
    */
    public function collection()
    {
        return User::select('id', 'name', 'email', 'phone')->get();
    }
}

Dans le code ci-dessus, nous définissons un fichier appelé classe ExempleExport. Cette classe utilise les interfaces FromCollection et WithHeadings, qui fournissent les méthodes nécessaires pour générer des fichiers Excel.

Dans la méthode headers(), nous définissons les titres du fichier Excel, qui sont répertoriés dans la première ligne de la feuille de calcul Excel. Dans la méthode collect(), nous récupérons l’enregistrement utilisateur de la base de données et le renvoyons au contrôleur qui a appelé la classe.

Pour exporter un fichier Excel, nous pouvons instancier SampleExport dans la méthode contrôleur comme suit :

public function export()
{
    return Excel::download(new ExampleExport, 'users.xlsx');
}

Dans le code ci-dessus, nous utilisons le téléchargement fourni par la méthode Laravel Excel() exporte un fichier Excel à partir d'ExampleExport. Cette méthode nécessite deux paramètres : le premier paramètre est l’instance SampleExport et le deuxième paramètre est le nom du fichier Excel.

Lorsque vous accédez à l'URL de la méthode d'exportation dans votre navigateur, vous serez invité à télécharger le fichier users.xlsx.

Comment importer des fichiers Excel en utilisant Laravel Excel ?

Lors de la lecture d'un fichier Excel et de l'importation de ses données dans la base de données, nous pouvons utiliser la méthode import() fournie par Laravel Excel. Cette méthode accepte trois paramètres : l'objet fichier, le rappel de la tâche et le nom de la feuille de calcul.

Pour montrer comment importer un fichier Excel, nous allons créer une classe appelée UserImport comme indiqué ci-dessous :

<?php

namespace AppImports;

use AppUser;
use MaatwebsiteExcelConcernsToModel;

class UserImport implements ToModel
{
    public function model(array $row)
    {
        return new User([
            'name' => $row[0],
            'email' => $row[1],
            'phone' => $row[2],
        ]);
    }
}

Dans le code ci-dessus, nous avons implémenté l'interface ToModel en utilisant UserImport classe. L'interface ToModel fournit une méthode model() requise, qui convertit chaque ligne de données Excel en un objet modèle. Dans le code ci-dessus, nous avons analysé les trois premières colonnes du fichier Excel et les avons utilisées pour créer un nouvel enregistrement utilisateur.

Utilisez la méthode import() dans le contrôleur pour importer le fichier Excel comme suit :

public function import(Request $request)
{
    $file = $request->file('file');
    Excel::import(new UserImport, $file);
    return redirect()->back()->with('success', 'Excel file imported successfully.');
}

Dans le code ci-dessus, nous obtenons l'objet fichier Excel téléchargé et le transmettons La méthode import() de Laravel Excel l'importe dans la classe UserImport. Si l'importation réussit, le système enverra une réponse de redirection à l'utilisateur avec un message de réussite « Fichier Excel importé avec succès ».

Comment utiliser la bibliothèque PHPOffice pour lire et écrire des fichiers Excel ?

PHPOffice est une bibliothèque PHP utilisée pour lire et écrire différents types de fichiers bureautiques, tels qu'Excel, Word et PowerPoint, etc. PHPOffice, contrairement à Laravel Excel, n'est pas développé pour un framework spécifique et peut être utilisé dans n'importe quelle application PHP.

Avant d'installer PHPOffice, vous devez vous assurer que l'extension PHP Zip et l'extension PHP XML sont installées.

Utilisez Composer pour installer la bibliothèque Spreadsheet de PHPOffice Vous pouvez utiliser la commande suivante :

composer require phpoffice/phpspreadsheet

Pour créer un nouveau fichier Excel, nous pouvons utiliser le code suivant : #🎜 🎜#

<?php

use PhpOfficePhpSpreadsheetSpreadsheet;
use PhpOfficePhpSpreadsheetWriterXlsx;

$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Hello World!');
$sheet->setCellValue('B1', 'This is PHPOffice.');

$writer = new Xlsx($spreadsheet);
$writer->save('hello.xlsx');
# 🎜🎜#Dans le code ci-dessus, nous créons d'abord une nouvelle feuille de calcul et ajoutons des cellules pour "Hello World!" et "This is PHPOffice" dans les deux premières colonnes de sa première ligne. Nous enregistrons ensuite la feuille de calcul dans le fichier hello.xlsx.

Pour ouvrir et modifier un fichier Excel existant, nous pouvons utiliser le code suivant :

<?php

use PhpOfficePhpSpreadsheetIOFactory;

$spreadsheet = IOFactory::load('hello.xlsx');
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('C1', 'This cell has been added.');

$writer = new Xlsx($spreadsheet);
$writer->save('hello.xlsx');

Dans le code ci-dessus, nous utilisons la classe IOFactory pour charger l'Excel existant à partir du disque document. Nous avons ensuite ouvert la feuille de calcul active du fichier et y avons ajouté une nouvelle cellule. Enfin, nous enregistrons les mises à jour du fichier d'origine.

Conclusion

Dans cet article, nous avons présenté comment lire et écrire des fichiers Excel dans l'application Laravel à l'aide de la bibliothèque Laravel Excel et PHPOffice. Nous avons appris comment exporter et importer des fichiers Excel à l'aide de Laravel Excel, et comment créer, ouvrir et modifier des fichiers Excel existants à l'aide de la bibliothèque PHPOffice. Ces techniques devraient vous permettre d'intégrer plus facilement des fichiers Excel dans votre application Laravel.

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