Sprache:

Suche

Einfache Excel-Exporte in Laravel

  • Teilen:
Einfache Excel-Exporte in Laravel

Der Export von Excel-Dateien ist praktisch, wenn Sie eine Anwendung mit einer Art Inventar erstellen. In diesem kurzen Tutorial werden wir den Export von Excel-Dateien mit Laravel durchgehen und zwischendurch einige verrückte Hacks und Tricks ausprobieren.

Installieren des Pakets

composer require maatwebsite/excel

Dienstanbieter und Fassade hinzufügen

Direkt in Ihr config/app.php, den Dienstanbieter hinzufügen.

'providers' => [

   Maatwebsite\Excel\ExcelServiceProvider::class,

]

und die Fassade

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

Einrichten einer einfachen Route

Route::get( '/export', 'DataExporter@index' );

Hinzufügen der Funktionalität zur DataExporter-Klasse

class DataExporter {

   public function index() {
      \Excel::create( 'file_name', function ( $excel ) {
         /** Set the spreadsheet title, creator, and description */
         $excel->setTitle( 'your_file_title' );
         $excel->setCreator( 'creator_name' )->setCompany( 'company_name' );
         $excel->setDescription( 'This is the description of the exported excel file' );

         /** Creating a simple sheet */
         $excel->sheet( 'sheet_name', function ( $sheet ) {
            /** Manipulating Rows */
            $sheet->row( '1', array(
               'First Row Heading'
            ) );

            $users = User::all();
            /**
             * Filter through each of users
             * @var  $key
             * @var  $value
             */
            foreach ( $users as $key => $value ) {
               $sheet->SetCellValue( "A" . $key, $value->name );
            }
         } );

      } )->get( 'xlsx' );
 }
}

Aktualisiert für v3.*

In der neueren Version dieses Pakets gibt es größere Änderungen. Daher werden wir den ähnlichen Ansatz der Benutzersammlung verwenden und ihn mit der neueren Version umsetzen.

Wir werden die Benutzersammlung in eine separate Datei verschieben. Nennen wir sie UserExporter.php

class UserExporter implements FromCollection, WithHeadings,ShouldAutoSize {


   /**
    * @return Collection
    */
   public function collection() {
      return User::all();
   }

   /**
    * @return array
    */
   public function headings(): array {
      return [
         'First Row Heading',
         
      ];
   }
}

Nun zurück zu unserem DataExporter class, lassen Sie uns die Dinge ein wenig vereinfachen in unserem index() Methode.

return Excel::download( new UserExporter(), 'users.xlsx' );

Schlussfolgerung

Das war's, drücken Sie einfach die /export in Ihrem Browser und Sie erhalten ein Popup-Fenster zum Herunterladen Ihrer Excel-Datei. Noch nie war es so einfach, einen Excel-Export zu erstellen. Weitere Informationen über dieses großartige Paket finden Sie auf der dokumentation website.

 

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.