Sprache:

Suche

Einfache Excel-Importe in Laravel

  • Teilen:
Einfache Excel-Importe in Laravel

Das Importieren von Excel-Dateien ist praktisch, wenn Sie eine Anwendung in großem Umfang aufbauen, bei der Sie eine Reihe von Daten aus CSV- oder Excel-Dateien importieren müssen. In diesem kurzen Tutorial werden wir das Importieren von Excel-Dateien mit Laravel durchgehen und zwischendurch einige verrückte Hacks und Tricks ausprobieren.

Installieren des Pakets

composer require maatwebsite/excel

Fügen Sie die Service Provider & Facade

Direkt in Ihr config/app.php, die service provider.

'providers' => [
   Maatwebsite\Excel\ExcelServiceProvider::class,
]

und die facade

'aliases' => [
   'Excel' => Maatwebsite\Excel\Facades\Excel::class,
]

Exportieren Sie Excel-Dateien mit Ihrem Laravel 

Beispiel

Im folgenden Beispiel erstellen wir einen einfachen Seeder und importieren Daten aus der CSV-Datei.

Schritt#1 - Erstellen einer UsersTableImport class

Erstellen einer UsersTableImport class irgendwo in Ihrem Inneren database/seeds Verzeichnis. Legen wir es unter database/seeds/imports/UsersTableImport.php und fügen Sie den folgenden Code ein.

class UsersTableImport implements toCollection, WithChunkReading, WithStartRow {

   public function collection( Collection $rows ) {

      foreach ( $rows as $row ) {
         User::create( [
            'name'             => $row[0],
            'email'            => $row[1],
         ] );
      }
   }

   /**
    * @return int
    */
   public function chunkSize(): int {
      return 250;
   }

   /**
    * @return int
    */
   public function startRow(): int {
      return 2;
   }

Hier haben wir Daten in eine Sammlung importiert. Die folgenden Punkte erklären ein wenig von dem, was wir hier getan haben.

  • Wenn Sie größere csv-Dateien haben, können Sie jederzeit WithChunkReading interface und legen Sie die Größe für schnellere Importe fest.
  • Wenn die erste Zeile Ihrer CSV-Datei die Titel enthält, können Sie die Funktion WithStartRow interface um Ihre benutzerdefinierte Zeile festzulegen, aus der Daten gelesen werden sollen.

Schauen Sie sich die Dokumente an, wenn Sie ein besseres Verständnis aller Schnittstellen haben wollen.

Lesen Sie auch: Laravel-Bereitstellungen mit Envoy

Schritt#2 - Erstellen einer Seeder

Erstellen Sie eine neue Sämaschine mit artisan php artisan make:seeder UsersTableSeeder. Im Inneren des run() methode, fügen Sie einfach den folgenden Code ein (angenommen, wir haben bereits eine csv-Datei in seeds/csvs/users_table_seeder.csv).

Excel::import( new UsersTableImport, database_path( 'seeds/csvs/users_table_seeder.csv' ), null, \Maatwebsite\Excel\Excel::CSV );

Schlussfolgerung

Das war's, Sie können es einfach ausprobieren, indem Sie php artisan migrate und Sie werden sehen, dass sich die Daten in Ihrer DB füllen. Das Importieren von Excel-Dateien war noch nie so einfach. Weitere Informationen über dieses großartige Paket finden Sie auf der documentation.

Usama Muneer

Usama Muneer

A web enthusiastic, self-motivated & detail-oriented professional Full-Stack Web Developer from Karachi, Pakistan with experience in developing applications using JavaScript, WordPress & Laravel specifically. Loves to write on different web technologies with an equally useful skill to make some sense out of it.