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.