Laravel Export Array to XLSX File Download

Creating or making or download excel file in laravel is not much critical. It can be easily done by popular package maatwebsite/excel. Here in this whole blog we will see how to download excel file using laravel application

Install Composer Package maatwebsite/excel

composer require maatwebsite/excel

Create an Export Class for User

php artisan make:export UsersExport --model=User

Larvavel UserExport Class

namespace App\Exports;

use Maatwebsite\Excel\Concerns\FromCollection;

class UsersExport implements FromCollection
{
    protected $data;

    public function __construct(array $data)
    {
        $this->data = $data;
    }

    /**
    * @return \Illuminate\Support\Collection
    */
    public function collection()
    {
        return collect($this->data);
    }
}

Create an UserController

namespace App\Http\Controllers;

use App\Exports\UsersExport;
use Maatwebsite\Excel\Facades\Excel;
use Illuminate\Http\Request;

class UserController extends Controller
{
    public function export()
    {
        $data = [
            ['Name', 'Email', 'Phone'],
            ['John Doe', '[email protected]', '123456789'],
            ['Jane Doe', '[email protected]', '987654321'],
            // Add more data as needed
        ];

        return Excel::download(new UsersExport($data), 'users.xlsx');
    }
}

Read also: Laravel model one to one relationship

Read also: Make middleware in laravel 11

Define Route export for downloading xlsx file

use App\Http\Controllers\UserController;

Route::get('export', [UserController::class, 'export']);

Now navigate to your browser then go to http://yourapp.test/export , then it will automatically start downloading users.xlsx file

Tags: