Heim >PHP-Framework >Laravel >Laravel-Entwicklung: Wie lese und schreibe ich Excel-Dateien mit Laravel Excel und PHPOffice?

Laravel-Entwicklung: Wie lese und schreibe ich Excel-Dateien mit Laravel Excel und PHPOffice?

PHPz
PHPzOriginal
2023-06-13 17:57:582799Durchsuche

Mit der weit verbreiteten Verwendung von Excel-Dateien im Geschäfts- und Finanzbereich ist die Integration von Excel-Dateien in Webanwendungen zu einer der von Entwicklern geforderten Fähigkeiten geworden. Da Laravel ein beliebtes PHP-Framework ist, gibt es in seinem Ökosystem viele Pakete, die uns beim Lesen und Schreiben von Excel-Dateien helfen können. In diesem Artikel wird erläutert, wie Sie Laravel Excel und die PHPOffice-Bibliothek zum Lesen und Schreiben von Excel-Dateien in Laravel-Anwendungen verwenden.

Was ist Laravel Excel?

Laravel Excel ist ein leistungsstarkes Excel-Verarbeitungstool, das für das Laravel-Framework entwickelt wurde. Dieses Tool bietet eine benutzerfreundliche API, die uns beim einfachen Import und Export von Excel-Dateien helfen kann. Einer der Hauptvorteile dieses Tools besteht darin, dass es die direkte Bearbeitung von Excel-Dateien ermöglicht, ohne auf Excel-Software angewiesen zu sein.

Die Installation von Laravel Excel kann über Composer erfolgen. Gehen Sie im Terminal in das Verzeichnis des Laravel-Projekts und führen Sie den folgenden Composer-Befehl aus:

composer require maatwebsite/excel

Dieser Befehl lädt die neueste Version von Laravel Excel von Packagist herunter und schließt den Installationsvorgang automatisch ab.

Wie exportiere ich eine Excel-Datei mit Laravel Excel?

Laravel Excel bietet eine Excel-Klasse, eine Proxy-Klasse, über die Sie neue Excel-Dateien erstellen oder vorhandene Excel-Dateien öffnen und bearbeiten können. Wir können diese Klasse verwenden, um Excel-Dateien in die Laravel-Anwendung zu exportieren.

Erstellen Sie eine neue Excel-Datei im Projekt. Wir können die folgende von Laravel Excel bereitgestellte Vorlage verwenden:

<?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();
    }
}

Im obigen Code haben wir eine Klasse namens „ExampleExport“ definiert. Diese Klasse verwendet die Schnittstellen FromCollection und WithHeadings, die die zum Generieren von Excel-Dateien erforderlichen Methoden bereitstellen.

In der Methode headings() definieren wir die Kopfzeilen der Excel-Datei, die in der ersten Zeile des Excel-Arbeitsblatts aufgeführt werden. In der Methode „collect()“ rufen wir den Benutzerdatensatz aus der Datenbank ab und geben ihn an den Controller zurück, der die Klasse aufgerufen hat.

Um eine Excel-Datei zu exportieren, können wir BeispielExport in der Controller-Methode wie folgt instanziieren:

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

Im obigen Code exportieren wir eine Excel-Datei aus BeispielExport mithilfe der von Laravel Excel bereitgestellten download()-Methode. Diese Methode erfordert zwei Parameter: Der erste Parameter ist die BeispielExport-Instanz und der zweite Parameter ist der Excel-Dateiname.

Wenn Sie in Ihrem Browser auf die URL der Exportmethode zugreifen, werden Sie aufgefordert, die Datei „users.xlsx“ herunterzuladen.

Wie importiere ich Excel-Dateien mit Laravel Excel?

Wenn wir eine Excel-Datei lesen und ihre Daten in die Datenbank importieren, können wir die von Laravel Excel bereitgestellte Methode import() verwenden. Diese Methode akzeptiert drei Parameter: das Dateiobjekt, den Aufgabenrückruf und den Arbeitsblattnamen.

Um zu demonstrieren, wie eine Excel-Datei importiert wird, erstellen wir eine Klasse namens UserImport, wie unten gezeigt:

<?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],
        ]);
    }
}

Im obigen Code haben wir die UserImport-Klasse mithilfe der ToModel-Schnittstelle implementiert. Die ToModel-Schnittstelle stellt eine erforderliche model()-Methode bereit, die jede Zeile von Excel-Daten in ein Modellobjekt konvertiert. Im obigen Code haben wir die ersten drei Spalten der Excel-Datei analysiert und sie zum Erstellen eines neuen Benutzerdatensatzes verwendet.

Verwenden Sie die import()-Methode im Controller, um die Excel-Datei wie unten gezeigt zu importieren:

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

Im obigen Code erhalten wir das hochgeladene Excel-Dateiobjekt und importieren es über die import()-Methode von Laravel in die UserImport-Klasse Excel Mitte. Wenn der Import erfolgreich ist, sendet das System eine Weiterleitungsantwort mit der Erfolgsmeldung „Excel-Datei erfolgreich importiert“ an den Benutzer.

Wie verwende ich die PHPOffice-Bibliothek zum Lesen und Schreiben von Excel-Dateien?

PHPOffice ist eine PHP-Bibliothek zum Lesen und Schreiben verschiedener Arten von Office-Dateien wie Excel, Word und PowerPoint usw. PHPOffice ist im Gegensatz zu Laravel Excel nicht für ein bestimmtes Framework entwickelt und kann in jeder PHP-Anwendung verwendet werden.

Bevor Sie PHPOffice installieren, müssen Sie sicherstellen, dass Sie die PHP Zip-Erweiterung und die PHP XML-Erweiterung installiert haben.

Um die Tabellenkalkulationsbibliothek von PHPOffice mit Composer zu installieren, können Sie den folgenden Befehl verwenden:

composer require phpoffice/phpspreadsheet

Um eine neue Excel-Datei zu erstellen, können wir den folgenden Code verwenden:

<?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');

Im obigen Code erstellen wir zunächst eine neue Tabelle und In den ersten beiden Spalten der ersten Zeile wurden Zellen für „Hallo Welt!“ und „Das ist PHPOffice“ hinzugefügt. Anschließend speichern wir die Tabelle in der Datei hello.xlsx.

Um eine vorhandene Excel-Datei zu öffnen und zu bearbeiten, können wir den folgenden Code verwenden:

<?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');

Im obigen Code verwenden wir die IOFactory-Klasse, um eine vorhandene Excel-Datei von der Festplatte zu laden. Anschließend haben wir das aktive Arbeitsblatt der Datei geöffnet und eine neue Zelle hinzugefügt. Abschließend speichern wir die Aktualisierungen in der Originaldatei.

Fazit

In diesem Artikel haben wir vorgestellt, wie man Excel-Dateien in der Laravel-Anwendung mit Laravel Excel und der PHPOffice-Bibliothek liest und schreibt. Wir haben gelernt, wie man Excel-Dateien mit Laravel Excel exportiert und importiert und wie man bestehende Excel-Dateien mit der PHPOffice-Bibliothek erstellt, öffnet und bearbeitet. Diese Techniken sollen es Ihnen erleichtern, Excel-Dateien in Ihre Laravel-Anwendung zu integrieren.

Das obige ist der detaillierte Inhalt vonLaravel-Entwicklung: Wie lese und schreibe ich Excel-Dateien mit Laravel Excel und PHPOffice?. 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