Heim > Artikel > PHP-Framework > Laravel-Entwicklung: Wie verwende ich Laravel Excel, um den Excel-Import und -Export zu implementieren?
Laravel-Entwicklung: Wie verwende ich Laravel Excel, um den Excel-Import und -Export zu implementieren?
Während der Entwicklung werden häufig Excel-Tabellen für die Datenverarbeitung verwendet, beispielsweise für den Datenimport und -export. Laravel Excel ist eine einfache und leistungsstarke Laravel-Erweiterung, die uns die einfache Verarbeitung von Excel-Dateien ermöglicht, einschließlich Lese-, Schreib- und Exportvorgängen von Excel-Dateien. In diesem Artikel stellen wir vor, wie Sie den Excel-Import und -Export mit Laravel Excel implementieren.
Die Verwendung von Laravel Excel in einem Laravel-Projekt ist sehr einfach. Sie müssen lediglich die Abhängigkeit des Laravel-Excel-Pakets zur Datei „composer.json“ hinzufügen. Führen Sie den folgenden Befehl in der Befehlszeile aus:
composer require maatwebsite/excel
Nach der Installation von Laravel Excel müssen wir einige Konfigurationen vornehmen, um es zu verwenden. Fügen Sie zunächst den folgenden Code zur Datei config/app.php hinzu:
'providers' => [ // ... MaatwebsiteExcelExcelServiceProvider::class, ], 'aliases' => [ // ... 'Excel' => MaatwebsiteExcelFacadesExcel::class, ],
Dann müssen wir die Laravel Excel-Konfigurationsdatei veröffentlichen und den folgenden Befehl ausführen:
php artisan vendor:publish --provider="MaatwebsiteExcelExcelServiceProvider" --tag=config
Dadurch wird eine excel.php-Datei im Konfigurationsverzeichnis generiert können wir in dieser Datei einige Konfigurationen vornehmen, z. B. das Format der Exportdatei, den Standardnamen der Exportdatei usw.
Als nächstes stellen wir Ihnen vor, wie Sie Laravel Excel zum Exportieren von Excel-Dateien verwenden.
3.1 Erstellen Sie eine Exportklasse
Zuerst müssen wir eine Exportklasse erstellen, um das Format und den Inhalt der exportierten Daten zu definieren. Führen Sie den folgenden Befehl in der Befehlszeile aus:
php artisan make:export UsersExport --model=User
Dadurch wird eine UsersExport-Klasse im Verzeichnis app/Exports generiert, in der das Datenformat und der Inhalt der exportierten Excel-Datei definiert werden können. Wenn wir beispielsweise die Daten der Benutzertabelle exportieren möchten, können wir in dieser Klasse den folgenden Inhalt definieren:
namespace AppExports; use AppModelsUser; use MaatwebsiteExcelConcernsFromCollection; class UsersExport implements FromCollection { public function collection() { return User::all(); } }
Im obigen Code geben wir über die FromCollection-Schnittstelle an, dass die Quelle der exportierten Daten alle Benutzerdaten sind im Benutzermodell.
Zusätzlich zur FromCollection-Schnittstelle bietet Laravel Excel auch einige andere Schnittstellen, wie FromQuery und FromView usw. Sie können die entsprechende Schnittstelle entsprechend den tatsächlichen Anforderungen auswählen.
3.2 Verwenden Sie die Exportklasse, um Excel-Dateien zu exportieren
Nachdem wir die Exportklasse definiert haben, können wir die Exportklasse über den folgenden Code aufrufen, um die Daten in die Excel-Datei zu exportieren:
use AppExportsUsersExport; use MaatwebsiteExcelFacadesExcel; public function export() { return Excel::download(new UsersExport, 'users.xlsx'); }
Im obigen Code verwenden wir Excel: :download( )-Methode zum Ausgeben einer Excel-Datei, wobei der erste Parameter das gerade erstellte Exportklassenobjekt und der zweite Parameter der Name der Excel-Datei ist.
Als nächstes stellen wir Ihnen vor, wie Sie Laravel Excel zum Importieren von Excel-Dateien verwenden.
4.1 Erstellen Sie eine Importklasse
Zuerst müssen wir eine Importklasse erstellen, um das Format und den Inhalt der importierten Daten zu definieren. Führen Sie den folgenden Befehl in der Befehlszeile aus:
php artisan make:import UsersImport --model=User
Dadurch wird eine UsersImport-Klasse im Verzeichnis app/Imports generiert, in der das Datenformat und der Inhalt der importierten Excel-Datei definiert werden können. Wenn wir beispielsweise Daten aus der Benutzertabelle importieren möchten, können wir in dieser Klasse den folgenden Inhalt definieren:
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']), ]); } }
Im obigen Code ordnen wir jede Datenzeile in der Excel-Datei den Eigenschaften des Benutzermodells zu die ToModel-Schnittstelle und übergeben Sie die WithHeadingRow-Schnittstelle, um die erste Zeile der Excel-Datei als Kopfzeile (d. h. den Attributnamen) anzugeben.
Zusätzlich zu den Schnittstellen ToModel und WithHeadingRow bietet Laravel Excel auch einige andere Schnittstellen, wie ToCollection und ToModel usw. Sie können die entsprechende Schnittstelle entsprechend den tatsächlichen Anforderungen auswählen.
4.2 Verwenden Sie die Importklasse, um Excel-Dateien zu importieren
Nachdem wir die Importklasse definiert haben, können wir die Importklasse über den folgenden Code aufrufen, um Daten aus der Excel-Datei in die Datenbank zu importieren:
use AppImportsUsersImport; use MaatwebsiteExcelFacadesExcel; public function import() { Excel::import(new UsersImport, request()->file('file')); return redirect()->back(); }
Im obigen Code verwenden wir Excel: :import()-Methode zum Importieren von Excel-Dateien, wobei der erste Parameter das gerade erstellte Importklassenobjekt und der zweite Parameter die hochgeladene Excel-Datei ist.
Mit Laravel Excel können wir die Import- und Exportfunktionen von Excel-Dateien einfach implementieren und so den Datenverarbeitungsprozess erheblich vereinfachen. In der tatsächlichen Projektentwicklung kann die Verwendung von Laravel Excel die Entwicklungseffizienz erheblich verbessern und die Entwicklungskosten senken. Ich hoffe, dieser Artikel ist hilfreich für Sie.
Das obige ist der detaillierte Inhalt vonLaravel-Entwicklung: Wie verwende ich Laravel Excel, um den Excel-Import und -Export zu implementieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!