Heim >PHP-Framework >Laravel >Laravel-Entwicklung: Wie verarbeite ich Excel-Dateien mit Laravel Excel und Spout?

Laravel-Entwicklung: Wie verarbeite ich Excel-Dateien mit Laravel Excel und Spout?

王林
王林Original
2023-06-15 09:12:441637Durchsuche

Laravel ist ein beliebtes PHP-Entwicklungsframework, das viele Funktionen und Erweiterungen bietet, um Entwicklern beim schnellen Erstellen von Webanwendungen zu helfen. Eine der häufigsten Aufgaben ist die Verarbeitung von Excel-Dateien. In diesem Artikel erfahren Sie, wie Sie mit Laravel Excel und Spout Excel-Dateien verarbeiten.

Laravel Excel ist eine beliebte Erweiterung zum Importieren und Exportieren von Excel-Dateien. Sie bietet eine einfache und benutzerfreundliche Oberfläche zum Lesen, Schreiben und Bearbeiten von Excel-Dateien. Spout ist eine schnellere PHP-Bibliothek zum Lesen und Schreiben großer Excel-Dateien.

Zuerst müssen wir diese Erweiterungen installieren. In Laravel 5.5 und höher kann Laravel Excel mit dem folgenden Befehl installiert werden:

composer require maatwebsite/excel

Für Spout kann es mit dem folgenden Befehl installiert werden:

composer require box/spout

Sobald diese Erweiterungen installiert sind, können wir damit beginnen, sie zur Verarbeitung von Excel-Dateien zu verwenden.

Excel-Dateien lesen

Um Excel-Dateien zu lesen, müssen wir die von Laravel Excel bereitgestellte Excel-Klasse verwenden. Hier ist ein einfaches Beispiel, das alle Zelldaten in einer Excel-Datei liest und ein zweidimensionales Array zurückgibt:

use MaatwebsiteExcelFacadesExcel;

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

In diesem Beispiel gibt die Methode all() eine Collection-Objekt, das alle Zeilen- und Spaltendaten in der Excel-Datei enthält. Die Methode <code>toArray() wandelt das Collection-Objekt in ein einfaches zweidimensionales Array um, zum Beispiel: 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

Wir können die Methode get() verwenden, um eine bestimmte Zeile abzurufen oder Spalte. Um beispielsweise die erste Datenspalte abzurufen, können Sie den folgenden Code verwenden:

rrreee

In Excel-Datei schreiben

Um Daten in eine Excel-Datei zu schreiben, müssen wir die Writer-Klasse von Laravel Excel verwenden. Hier ist ein einfaches Beispiel, das eine Excel-Datei mit Daten erstellt: 🎜rrreee🎜 In diesem Beispiel verwenden wir die Methode create(), um eine neue Excel-Datei zu erstellen. In der Callback-Funktion können wir Titel, Ersteller und Beschreibung der Excel-Datei festlegen. Die Methode sheet() erstellt ein neues Arbeitsblatt und schreibt Daten hinein. Schließlich lädt die Methode download() die Excel-Datei als Antwort herunter. In diesem Fall wird die Datei im XLSX-Format heruntergeladen. 🎜🎜Verwenden Sie Spout zum Verarbeiten von Excel-Dateien🎜🎜Spout ist eine leichte PHP-Bibliothek zum Lesen und Schreiben großer Excel-Dateien. Hier ist ein einfaches Beispiel, das Daten aus einer Excel-Datei mit Spout liest: 🎜rrreee🎜 In diesem Beispiel haben wir über das Klassenobjekt ReaderFactory einen $reader zum Lesen erstellt Excel-Dateien. Über die Methoden getSheetIterator() und getRowIterator() können wir den Iterator des Arbeitsblatts und der Zeilen abrufen und toArray() verwenden Methode, um Zelldaten abzurufen. Zum Schließen der Excel-Datei wird die Methode $reader->close() verwendet. 🎜🎜Ähnlich können wir die Klassen WriterFactory und Sheet von Spout verwenden, um Daten in Excel-Dateien zu schreiben. 🎜rrreee🎜In diesem Beispiel verwenden wir die Klasse WriterFactory, um ein $writer-Objekt zu erstellen und die Excel-Datei über die Methode openToFile() zu öffnen . Verwenden Sie die Methode addRow(), um Daten zum Arbeitsblatt hinzuzufügen, und verwenden Sie schließlich die Methode close(), um die Excel-Datei zu schließen. 🎜🎜Fazit🎜🎜In diesem Artikel haben wir gelernt, wie man Laravel Excel und Spout zum Verarbeiten von Excel-Dateien verwendet. Laravel Excel bietet eine bequeme Möglichkeit, Excel-Dateien über eine einfache Oberfläche zu lesen, zu schreiben und zu ändern. Spout hingegen ist eine schnellere PHP-Bibliothek, die zum Lesen und Schreiben großer Excel-Dateien entwickelt wurde. Diese Tools können die Verarbeitung von Excel-Dateien erheblich vereinfachen und Entwicklern dabei helfen, Excel-Daten einfacher zu verarbeiten und zu verwalten. 🎜

Das obige ist der detaillierte Inhalt vonLaravel-Entwicklung: Wie verarbeite ich Excel-Dateien mit Laravel Excel und Spout?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn