Maison  >  Article  >  cadre php  >  Développement Laravel : Comment traiter des fichiers Excel à l'aide de Laravel Excel et Spout ?

Développement Laravel : Comment traiter des fichiers Excel à l'aide de Laravel Excel et Spout ?

王林
王林original
2023-06-15 09:12:441521parcourir

Laravel est un framework de développement PHP populaire qui fournit de nombreuses fonctionnalités et extensions pour aider les développeurs à créer rapidement des applications Web. L'une des tâches courantes consiste à traiter les fichiers Excel. Dans cet article, nous apprendrons comment utiliser Laravel Excel et Spout pour traiter des fichiers Excel.

Laravel Excel est une extension populaire pour importer et exporter des fichiers Excel. Elle fournit une interface simple et facile à utiliser pour lire, écrire et manipuler des fichiers Excel. Spout est une bibliothèque PHP plus rapide conçue pour lire et écrire de gros fichiers Excel.

Tout d’abord, nous devons installer ces extensions. Dans Laravel 5.5 et supérieur, Laravel Excel peut être installé avec la commande suivante :

composer require maatwebsite/excel

Pour Spout, il peut être installé avec la commande suivante :

composer require box/spout

Une fois ces extensions installées, nous pouvons commencer à les utiliser pour traiter les fichiers Excel.

Lecture de fichiers Excel

Pour lire des fichiers Excel, nous devons utiliser la classe Excel fournie par Laravel Excel. Voici un exemple simple qui lira toutes les données de cellule dans un fichier Excel et renverra un tableau à deux dimensions :

use MaatwebsiteExcelFacadesExcel;

$rows = Excel::load('example.xlsx')->all()->toArray();

Dans cet exemple, la méthode all() renverra un Collection objet, qui contient toutes les données de lignes et de colonnes du fichier Excel. La méthode <code>toArray() convertit l'objet Collection en un simple tableau bidimensionnel, par exemple : all()方法将返回一个Collection对象,其中包含Excel文件中所有的行和列数据。toArray()方法将Collection对象转换成一个简单的二维数组,例如:

[
    [
        "Name" => "John Doe",
        "Email" => "johndoe@example.com",
        "Age" => 30
    ],
    [
        "Name" => "Jane Doe",
        "Email" => "janedoe@example.com",
        "Age" => 28
    ],
    // ...
]

我们可以使用get()方法来获取特定的行或列。例如,要获取第一列数据,可以使用以下代码:

$column = Excel::load('example.xlsx')->get()[0];

写入Excel文件

要将数据写入Excel文件,我们需要使用Laravel Excel的writer类。以下是一个简单的示例,它将创建一个包含数据的Excel文件:

use MaatwebsiteExcelFacadesExcel;
use MaatwebsiteExcelWriter;
use MaatwebsiteExcelClassesPHPExcel;

Excel::create('example', function(Writer $writer) {
    $writer->setTitle('My First Excel');
    $writer->setCreator('John Doe');
    $writer->setDescription('A demonstration of using Laravel Excel');

    $writer->sheet('Sheet1', function($sheet) {
        $sheet->fromArray([
            ['Name', 'Email', 'Age'],
            ['John Doe', 'johndoe@example.com', 30],
            ['Jane Doe', 'janedoe@example.com', 28]
        ]);
    });
})->download('xlsx');

在这个例子中,我们将使用create()方法来创建一个新的Excel文件。在回调函数中,我们可以设置Excel文件的标题、创建者和描述。sheet()方法将创建新的工作表,并将数据写入其中。最后,download()方法将Excel文件作为响应下载。在这种情况下,文件将以XLSX格式下载。

使用Spout处理Excel文件

Spout是一个轻量级的PHP库,专门用于读取和写入大型Excel文件。以下是一个简单的示例,它将使用Spout从Excel文件中读取数据:

use BoxSpoutReaderReaderFactory;
use BoxSpoutCommonType;

$reader = ReaderFactory::create(Type::XLSX);
$reader->open('example.xlsx');

foreach ($reader->getSheetIterator() as $sheet) {
    foreach ($sheet->getRowIterator() as $row) {
        $data[] = $row->toArray();
    }
}

$reader->close();

在这个例子中,我们通过ReaderFactory类创建了一个$reader对象,用于读取Excel文件。通过getSheetIterator()getRowIterator()方法,我们可以获取工作表和行的迭代器,并可以使用toArray()方法获取单元格数据。$reader->close()方法用于关闭Excel文件。

类似地,我们可以使用Spout的WriterFactory类和Sheet类来写入数据到Excel文件中。

use BoxSpoutWriterWriterFactory;
use BoxSpoutCommonType;

$writer = WriterFactory::create(Type::XLSX);
$writer->openToFile('example.xlsx');

$writer->addRow(['Name', 'Email', 'Age']);
$writer->addRow(['John Doe', 'johndoe@example.com', 30]);
$writer->addRow(['Jane Doe', 'janedoe@example.com', 28]);

$writer->close();

在这个例子中,我们使用WriterFactory类创建一个$writer对象,并通过openToFile()方法打开Excel文件。使用addRow()方法可以将数据添加到工作表中,最后使用close()rrreee

Nous pouvons utiliser la méthode get() pour obtenir une ligne spécifique ou une colonne. Par exemple, pour obtenir la première colonne de données, vous pouvez utiliser le code suivant :

rrreee

Écrire dans un fichier Excel

Pour écrire des données dans un fichier Excel, nous devons utiliser la classe d'écriture de Laravel Excel. Voici un exemple simple qui va créer un fichier Excel contenant des données : 🎜rrreee🎜 Dans cet exemple, nous utiliserons la méthode create() pour créer un nouveau fichier Excel. Dans la fonction de rappel, nous pouvons définir le titre, le créateur et la description du fichier Excel. La méthode sheet() créera une nouvelle feuille de calcul et y écrira des données. Enfin, la méthode download() télécharge le fichier Excel en réponse. Dans ce cas, le fichier sera téléchargé au format XLSX. 🎜🎜Utilisez Spout pour traiter les fichiers Excel🎜🎜Spout est une bibliothèque PHP légère conçue pour lire et écrire de gros fichiers Excel. Voici un exemple simple qui lira les données d'un fichier Excel à l'aide de Spout : 🎜rrreee🎜 Dans cet exemple, nous avons créé un $reader via la classe ReaderFactory pour la lecture. Fichiers Excel. Grâce aux méthodes getSheetIterator() et getRowIterator(), nous pouvons obtenir l'itérateur de la feuille de calcul et des lignes, et utiliser toArray() méthode pour obtenir les données cellulaires. La méthode $reader->close() permet de fermer le fichier Excel. 🎜🎜De même, nous pouvons utiliser la classe WriterFactory et la classe Sheet de Spout pour écrire des données dans des fichiers Excel. 🎜rrreee🎜Dans cet exemple, nous utilisons la classe WriterFactory pour créer un objet $writer et ouvrir le fichier Excel via la méthode openToFile() . Utilisez la méthode addRow() pour ajouter des données à la feuille de calcul, et enfin utilisez la méthode close() pour fermer le fichier Excel. 🎜🎜Conclusion🎜🎜Dans cet article, nous avons appris à utiliser Laravel Excel et Spout pour traiter des fichiers Excel. Laravel Excel offre un moyen pratique de lire, écrire et modifier des fichiers Excel via une interface simple. Spout est une bibliothèque PHP plus rapide conçue pour lire et écrire de gros fichiers Excel. Ces outils peuvent grandement simplifier le traitement des fichiers Excel et aider les développeurs à traiter et gérer plus facilement les données Excel. 🎜

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