Heim PHP-Framework Laravel Laravel-Entwicklung: Wie importiere und exportiere ich CSV-Dateien mit Laravel Excel?

Laravel-Entwicklung: Wie importiere und exportiere ich CSV-Dateien mit Laravel Excel?

Jun 14, 2023 pm 12:06 PM
excel laravel csv

Laravel ist eines der herausragenden PHP-Frameworks der Branche. Seine leistungsstarken Funktionen und die benutzerfreundliche API machen es bei Entwicklern sehr beliebt. In der tatsächlichen Entwicklung müssen wir häufig Daten importieren und exportieren, und CSV ist als weit verbreitetes Datenformat auch zu einem der am häufigsten verwendeten Import- und Exportformate geworden. In diesem Artikel wird erläutert, wie Sie die Laravel Excel-Erweiterung zum Importieren und Exportieren von CSV-Dateien verwenden.

1. Installieren Sie Laravel Excel

Zuerst müssen wir Composer verwenden, um Laravel Excel zu installieren:

composer require maatwebsite/excel
Nach dem Login kopieren

Nachdem die Installation abgeschlossen ist, müssen wir den folgenden Code zum Provider-Array in der Datei config/app.php hinzufügen:

MaatwebsiteExcelExcelServiceProvider::class,
Nach dem Login kopieren

Fügen Sie den folgenden Code in das Aliases-Array ein:

'Excel' => MaatwebsiteExcelFacadesExcel::class,
Nach dem Login kopieren

2. CSV-Datei exportieren

Angenommen, wir haben ein Benutzermodell User, das über eine getExportData()-Methode verfügt, die die zu exportierenden Daten zurückgibt. Dann können wir den Exportcode wie folgt schreiben:

use MaatwebsiteExcelFacadesExcel;
use AppModelsUser;

class UserController extends Controller
{
    public function exportUsers()
    {
        return Excel::download(new UserExport(), 'users.csv');
    }
}

class UserExport implements FromQuery, WithHeadings
{
    public function query()
    {
        return User::query();
    }

    public function headings(): array
    {
        return [
            'ID',
            'Name',
            'Email',
            'Created At',
            'Updated At',
        ];
    }
}
Nach dem Login kopieren

Im obigen Code verwenden wir die FromQuery- und WithHeadings-Schnittstellen von Laravel Excel, um Daten schnell in eine CSV-Datei zu exportieren. Die FromQuery-Schnittstelle muss eine query()-Methode implementieren, um den zu exportierenden Datensatz zurückzugeben; die WithHeadings-Schnittstelle muss eine headings()-Methode implementieren, um die Header-Informationen der CSV-Datei zurückzugeben. Im Exportvorgang verwenden wir zum Herunterladen die Methode Excel::download() und übergeben dabei zwei Parameter: die Exportklasse UserExport und den Dateinamen „users.csv“.

Wenn Benutzer auf diese Route zugreifen, können sie die exportierte CSV-Datei direkt herunterladen.

3. CSV-Dateien importieren

Um CSV-Dateien zu importieren, müssen wir eine Importklasse schreiben und die FromCollection-Schnittstelle implementieren.

Angenommen, wir haben ein Benutzerimportmodell mit einer importUsers()-Methode, die eine hochgeladene CSV-Datei akzeptiert und die Daten in die Datenbank importiert. Wir können so schreiben:

use MaatwebsiteExcelFacadesExcel;
use AppModelsUser;

class UserController extends Controller
{
    public function importUsers(Request $request)
    {
        $request->validate([
            'file' => 'required|mimes:csv,txt',
        ]);

        $path = $request->file('file')->getRealPath();
        $data = Excel::import(new UserImport(), $path);

        return redirect()->back()->with('success', '导入成功');
    }
}

class UserImport implements FromCollection
{
    public function collection(Collection $rows)
    {
        foreach ($rows as $row) {
            User::create([
                'name' => $row[0],
                'email' => $row[1],
            ]);
        }
    }
}
Nach dem Login kopieren

Im obigen Code haben wir eine UserImport-Klasse definiert und die FromCollection-Schnittstelle implementiert. Die Methode „collection()“ wird hier verwendet, um die aus der CSV-Datei importierten Daten zu verarbeiten und in ein Collection-Objekt zu konvertieren. In diesem Beispiel erstellen wir einfach einen Benutzer und verwenden die erste Spalte in der Datei als Benutzernamen und die zweite Spalte als E-Mail-Adresse.

Bei der Implementierung der Importfunktion müssen wir die Methode Excel::import() verwenden, um die Importklasse und den Dateipfad zu übergeben. Diese Methode gibt ein Array importierter Daten zurück, die wir an andere Prozessoren übergeben können.

4. Zusammenfassung

Mit der Laravel Excel-Erweiterung können wir CSV-Daten einfach in Laravel-Anwendungen importieren und exportieren. Im obigen Beispiel haben wir die Schnittstellen FromQuery, WithHeadings und FromCollection zum Exportieren und Importieren von Daten verwendet. Natürlich unterstützt Laravel Excel auch andere Schnittstellen, wie FromArray, WithTitle, WithMapping usw. In tatsächlichen Projekten können wir die geeignete Schnittstelle auswählen, um spezifische Datenimport- und -exportarbeiten basierend auf den tatsächlichen Anforderungen durchzuführen.

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

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie bekomme ich den Rückgabecode, wenn das Senden von E -Mails in Laravel fehlschlägt? Wie bekomme ich den Rückgabecode, wenn das Senden von E -Mails in Laravel fehlschlägt? Apr 01, 2025 pm 02:45 PM

Methode zum Abholen des Rücksendecode, wenn das Senden von Laravel -E -Mails fehlschlägt. Wenn Sie Laravel zur Entwicklung von Anwendungen verwenden, stellen Sie häufig Situationen auf, in denen Sie Überprüfungscodes senden müssen. Und in Wirklichkeit ...

Laravel -Zeitplanaufgabe wird nicht ausgeführt: Was soll ich tun, wenn die Aufgabe nicht nach Zeitplan ausgeführt wird: Befehl ausführen? Laravel -Zeitplanaufgabe wird nicht ausgeführt: Was soll ich tun, wenn die Aufgabe nicht nach Zeitplan ausgeführt wird: Befehl ausführen? Mar 31, 2025 pm 11:24 PM

Laravel -Zeitplan -Aufgabe Ausführen nicht reagierende Fehlerbehebung Bei Verwendung der Zeitplanung von Laravel -Zeitplänen werden viele Entwickler auf dieses Problem stoßen: Zeitplan: Run ...

Wie kann man in Laravel mit der Situation umgehen, in der Überprüfungscodes nicht per E -Mail gesendet werden? Wie kann man in Laravel mit der Situation umgehen, in der Überprüfungscodes nicht per E -Mail gesendet werden? Mar 31, 2025 pm 11:48 PM

Die Methode zum Umgang mit Laravels E -Mail -Versagen zum Senden von Verifizierungscode besteht darin, Laravel zu verwenden ...

So implementieren Sie die benutzerdefinierte Tabellenfunktion des Klickens, um Daten im DCAT -Administrator hinzuzufügen? So implementieren Sie die benutzerdefinierte Tabellenfunktion des Klickens, um Daten im DCAT -Administrator hinzuzufügen? Apr 01, 2025 am 07:09 AM

So implementieren Sie die Tabellenfunktion von benutzerdefiniertem Klicken, um Daten in dcatadmin (laravel-admin) hinzuzufügen, wenn Sie DCAT verwenden ...

Laravel Redis -Verbindungsfreigabe: Warum wirkt sich die Auswahlmethode auf andere Verbindungen aus? Laravel Redis -Verbindungsfreigabe: Warum wirkt sich die Auswahlmethode auf andere Verbindungen aus? Apr 01, 2025 am 07:45 AM

Die Auswirkungen des Austauschs von Redis -Verbindungen im Laravel -Framework und der Auswahl von Methoden bei Verwendung von Laravel -Framework und Redis können Entwickler auf ein Problem stoßen: Durch Konfiguration ...

Laravel Multi-Tenant-Erweiterungsstanz/Mietverhältnis: Wie passen Sie die Host-Adresse einer Mieterdatenbankverbindung an? Laravel Multi-Tenant-Erweiterungsstanz/Mietverhältnis: Wie passen Sie die Host-Adresse einer Mieterdatenbankverbindung an? Apr 01, 2025 am 09:09 AM

Benutzerdefinierte Mieterdatenbankverbindung in Laravel Multi-Tenant-Erweiterungspaket Stanz/Mietverhältnis beim Erstellen von Multi-Mandanten-Anwendungen mit Laravel Multi-Tenant-Erweiterungspaket Stanz/Mietverhältnis, ...

Laravel – Aktions-URL Laravel – Aktions-URL Aug 27, 2024 am 10:51 AM

Laravel – Aktions-URL – Laravel 5.7 führt eine neue Funktion namens „Aufrufbare Aktions-URL“ ein. Diese Funktion ähnelt der in Laravel 5.6, die String-in-Action-Methoden akzeptiert. Der Hauptzweck der neuen Syntax, die Laravel 5.7 eingeführt hat, besteht darin, direktl

Laravel eloquent orm bei bangla partieller Modellsuche) Laravel eloquent orm bei bangla partieller Modellsuche) Apr 08, 2025 pm 02:06 PM

Laraveleloquent-Modellab Abruf: Das Erhalten von Datenbankdaten Eloquentorm bietet eine prägnante und leicht verständliche Möglichkeit, die Datenbank zu bedienen. In diesem Artikel werden verschiedene eloquente Modellsuchtechniken im Detail eingeführt, um Daten aus der Datenbank effizient zu erhalten. 1. Holen Sie sich alle Aufzeichnungen. Verwenden Sie die Methode All (), um alle Datensätze in der Datenbanktabelle zu erhalten: UseApp \ Models \ post; $ posts = post :: all (); Dies wird eine Sammlung zurückgeben. Sie können mit der Foreach-Schleife oder anderen Sammelmethoden auf Daten zugreifen: foreach ($ postas $ post) {echo $ post->

See all articles