In this tutorial we will learn how to generate excel file in Laravel.
How to Generate Excel File in Laravel
To generate an Excel file in Laravel, you can use the Laravel Excel package. This package provides an easy-to-use interface for exporting data from your Laravel application to Excel format.
Here are the steps to generate an Excel file in Laravel using Laravel Excel:
Step 1 - Install the Laravel Excel package via Composer:
composer require maatwebsite/excel
Step 2 - Publish the configuration file:
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider" --tag=config
Step 3 - Create a new class that extends the Maatwebsite\Excel\Concerns\FromCollection
class. This class will be responsible for providing the data to be exported to Excel. For example:
<?php
namespace App\Exports;
use App\Models\User;
use Maatwebsite\Excel\Concerns\FromCollection;
class UsersExport implements FromCollection
{
public function collection()
{
return User::all();
}
}
Step 4 - In your controller, create a new method that will handle the Excel export. In this method, you will use the Excel
facade to create a new instance of the UsersExport
class and download the Excel file. For example:
<?php
namespace App\Http\Controllers;
use App\Exports\UsersExport;
use Maatwebsite\Excel\Facades\Excel;
class UsersController extends Controller
{
public function export()
{
return Excel::download(new UsersExport, 'users.xlsx');
}
}
Step 5 - Finally, create a route in your web.php
file that will call the export
method of your UsersController
:
Route::get('/export-users', [App\Http\Controllers\UsersController::class, 'export']);
Now you can visit /export-users
in your browser to download the Excel file containing the data from the users
table.