How to Download Excel,PDF,CSV files using Laravel Excel in Laravel
Step 1 - Install Laravel Excel Package :
Use the following command to install Laravel Excel Package on your project
composer require maatwebsite/excel
Now we need to register the service provider inside config/app.php :
Add the following class in the providers array inside config/app.php .
'providers' => [ ----------------- ----------------- ----------------- ----------------- Maatwebsite\Excel\ExcelServiceProvider::class, ]
Add the following class in the aliases array inside config/app.php .
'aliases' => [ ....... ....... ....... 'Excel' => Maatwebsite\Excel\Facades\Excel::class, ]
Now publish your config changes using the following command .
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"
Step 2 - Setup Your Route :
Route::get('/download','LaraExcelController@download')->name('download-doc');
Step 3 - Create Export File :
For downloading files in Excel , PDF , CSV or in any format using Laravel Excel we have to create a Export file for writting our Database Query and we will call this export file in our controller .
Use the following command and create a export file .
php artisan make:export filename --model=Model_name
php artisan make:export UsersExport --model=User
It will create a your file inside app/Exports/UsersExport.php . Now open this file and write your Database Query inside the collection method .
app/Exports/UsersExport.php :
<?php namespace App\Exports; use App\User; use Maatwebsite\Excel\Concerns\FromCollection; class UsersExport implements FromCollection { /** * @return \Illuminate\Support\Collection */ public function collection() { return User::all(); } }
Step 4 - Setup Your Controller :
Now everything is done , we just need call the export file in our controller method in order to download the file as shown below .
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Exports\UsersExport; use Maatwebsite\Excel\Facades\Excel; class LaraExcelController extends Controller { public function download() { //To download file in Excel Format return Excel::download(new UsersExport, 'users.xlsx'); } }
To Download in PDF format :
return Excel::download(new UsersExport, 'users.pdf');
To Download in CSV format :
return Excel::download(new UsersExport, 'users.csv');
Note :
While Downloading your file using this package for the first time you might get the following error .
Unable to resolve NULL driver for [Maatwebsite\Excel\Transactions\TransactionManager]
To resolve this issue please run any of the following command .
php artisan config:cache
php artisan config:clear
Thank you for reading this article 😊
For any query do not hesitate to comment 💬