Laravel – Create CSV File from Custom Array using Maatwebsite

In this tutorial, you will learn laravel maatwebsite custom array. In this article, we will implement a custom array create csv file laravel. i explained simply step by step laravel maatwebsite custom array to create excel file. it’s simple example of how to create csv file from array in laravel.

Here is a very simple example of how to create csv file from array in laravel using maatwebsite. you can use this example with laravel 6, laravel 7 and laravel 8 version.

Let’s see bellow example:

Step 1: Install maatwebsite/excel Package

In this step we need to install maatwebsite/excel package via the Composer package manager, so one your terminal and fire bellow command:

composer require maatwebsite/excel

Now open config/app.php file and add service provider and aliase.

config/app.php

'providers' => [

....

MaatwebsiteExcelExcelServiceProvider::class,

],

'aliases' => [

....

'Excel' => MaatwebsiteExcelFacadesExcel::class,

],

Step 2: Add Routes

In this step, we need to create route of import export file. so open your “routes/web.php” file and add following route.

routes/web.php

<?php

use IlluminateSupportFacadesRoute;

use AppHttpControllersUserImportController;

/*

|--------------------------------------------------------------------------

| Web Routes

|--------------------------------------------------------------------------

|

| Here is where you can register web routes for your application. These

| routes are loaded by the RouteServiceProvider within a group which

| contains the "web" middleware group. Now create something great!

|

*/

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

Step 4: Create Export Class

In maatwebsite 3 version provide way to built export class and we have to use in controller. So it would be great way to create new Export class. So you have to run following command and change following code on that file:

php artisan make:export UsersExport

app/Exports/UsersExport.php

<?php

namespace AppExports;

use MaatwebsiteExcelConcernsFromCollection;

use MaatwebsiteExcelConcernsWithHeadings;

class UsersExport implements FromCollection, WithHeadings

{

protected $data;

/**

* Write code on Method

*

* @return response()

*/

public function __construct($data)

{

$this->data = $data;

}

/**

* Write code on Method

*

* @return response()

*/

public function collection()

{

return collect($this->data);

}

/**

* Write code on Method

*

* @return response()

*/

public function headings() :array

{

return [

'ID',

'Name',

'Email',

];

}

}

Step 4: Create Controller

In this step, now we should create new controller as UserImportController in this path “app/Http/Controllers/UserImportController.php”. this controller will manage export method, so put bellow content in controller file:

app/Http/Controllers/UserImportController.php

<?php

namespace AppHttpControllers;

use IlluminateHttpRequest;

use AppExportsUsersExport;

use MaatwebsiteExcelFacadesExcel;

class UserImportController extends Controller

{

/**

* @return IlluminateSupportCollection

*/

public function export()

{

$users = [

[

'id' => 1,

'name' => 'Hardik',

'email' => '[email protected]'

],

[

'id' => 2,

'name' => 'Vimal',

'email' => '[email protected]'

],

[

'id' => 3,

'name' => 'Harshad',

'email' => '[email protected]'

]

];

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

}

}

Now you can check on your laravel 8 application.

Now we are ready to run our example so run bellow command so quick run:

php artisan serve

Now you can open bellow URL on your browser:

localhost:8000/export

you have to upload csv file as like bellow:

Laravel - Create CSV File from Custom Array using Maatwebsite

I hope it can help you…

Leave a Comment