How to export data in Excel using Laravel

In this tutorial we will learn how to export  dynamic data in excel file with heading using laravel.

 If you do not know how to install laravel then click here to install laravel .

Step 1- Install Laravel Maatwebsite Excel

Open your CMD and just run this command to install this package.

 composer require maatwebsite/excel

Step 2- Now,  go to config\app.php

Link installed package in app.php file

'providers' => [




'aliases' => [


   'Excel' => Maatwebsite\Excel\Facades\Excel::class,


Step 3- Run below command for publish the vendor file

php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider" --tag=config

Step 4 – Create  'users' table in database


User table data



Step 5- Create model for User 

php artisan make:model User

Then, run this command in CMD to generate UserExport.php file

php artisan make:export UserExport --model=User


Now this file has been created in the app folder, Generated file path is app/export/UserExport.php.

This is our UserExport.php file



namespace App\Exports;


use App\User;

use Maatwebsite\Excel\Concerns\FromCollection;

use Maatwebsite\Excel\Concerns\WithHeadings;


class UserExport implements FromCollection ,WithHeadings



    * @return \Illuminate\Support\Collection


    public function collection()


        return User::select('name', 'email', 'age')->get();


    public function headings(): array


        return [

            'Name', 'Email ID','Age'




step 6 – Create route 


Step 7 – create   controller  

php artisan make:controller UserController




namespace App\Http\Controllers;


use App\Exports\UserExport;


class UserController extends Controller


    Function export(){

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




Step 8 – run php artisan serve


Then, go to your browser and simply run the below url



Here users.xlsx file downloaded