Laravel 5.7 Import Export Excel to database Example

Laravel 5.7 Import Export Excel to database Example

In this post we will give you information about Laravel 5.7 Import Export Excel to database Example. Hear we will give you detail about Laravel 5.7 Import Export Excel to database ExampleAnd how to use it also give you demo for it if it is necessary.

In this tutorial, i would like to share with you how to export import Excel spreadsheet or csv file to database in php laravel 5.7 framework. i will show you step by step example of import csv or excel file and export csv or excel file using maatwebsite/excel version 3 composer package.

We almost require to implement excel or csv file upload for data into users table, products table etc. because it helps to add multiple records on same times. So if you are working on big project then you almost require to upload data using csv file. You also need to give feature to export download csv file. If you have same requirement then follow this article and make it for you.

In this example we will use maatwebsite/excel composer package for import and export task. maatwebsite/excel provide easy way to import and export using database model. maatwebsite/excel updated version 3 and they provide great way to import export data from database, so first follow few step to get example.

Step 1 : Install Laravel 5.7 Project

In first step, we will install Laravel 5.7 application using bellow command, So open your terminal OR command prompt and run bellow command:

composer create-project --prefer-dist laravel/laravel blog

Step 2: Install Maatwebsite Package

In this step we need to install Maatwebsite 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,

],

Then you have to also make publish configuration file by using following command:

php artisan vendor:publish

It will create a new config file named “config/excel.php”.

Also see:Laravel 5.7 CRUD (Create Read Update Delete) Tutorial Example

Step 3: Create Dummy Records

In this step, we have to require “users” table with some dummy records, so we can simply import and export. So first you have to run default migration that provided by laravel using following command:

php artisan migrate

After that we need to run following command to generate dummy users:

php artisan tinker

factory(AppUser::class, 20)->create();

Step 4: 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

Route::get('export', 'MyController@export')->name('export');

Route::get('importExportView', 'MyController@importExportView');

Route::post('import', 'MyController@import')->name('import');


Step 5: Create Import Class

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

php artisan make:import UsersImport --model=User

app/Imports/UsersImport.php

<?php

namespace AppImports;

use AppUser;

use MaatwebsiteExcelConcernsToModel;

class UsersImport implements ToModel

{

/**

* @param array $row

*

* @return IlluminateDatabaseEloquentModel|null

*/

public function model(array $row)

{

return new User([

'name' => $row[0],

'email' => $row[1],

'password' => Hash::make('123456'),

]);

}

}

Step 6: Create Export Class

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 --model=User

app/Exports/UsersExport.php

<?php

namespace AppExports;

use AppUser;

use MaatwebsiteExcelConcernsFromCollection;

class UsersExport implements FromCollection

{

/**

* @return IlluminateSupportCollection

*/

public function collection()

{

return User::all();

}

}

Step 7: Create Controller

In this step, now we should create new controller as MyController in this path “app/Http/Controllers/MyController.php”. this controller will manage all importExportView, export and import request and return response, so put bellow content in controller file:

app/Http/Controllers/MyController.php

<?php

namespace AppHttpControllers;

use IlluminateHttpRequest;

use AppExportsUsersExport;

use AppImportsUsersImport;

use MaatwebsiteExcelFacadesExcel;

class MyController extends Controller

{

/**

* @return IlluminateSupportCollection

*/

public function importExportView()

{

return view('import');

}

/**

* @return IlluminateSupportCollection

*/

public function export()

{

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

}

/**

* @return IlluminateSupportCollection

*/

public function import()

{

Excel::import(new UsersImport,request()->file('file'));

return back();

}

}

Step 8: Create Blade File

In Last step, let’s create import.blade.php(resources/views/import.blade.php) for layout and we will write design code here and put following code:

resources/views/import.blade.php

Also see:Laravel 5.7 Guzzle http client POST request example

<!DOCTYPE html>

<html>

<head>

<title>Laravel 5.7 Import Export Excel to database Example - ItSolutionStuff.com</title>

<link rel="stylesheet" href="#" />

</head>

<body>

<div >

<div >

<div >

Laravel 5.7 Import Export Excel to database Example - ItSolutionStuff.com

</div>

<div >

<form action="{{ route('import') }}" method="POST" enctype="multipart/form-data">

@csrf

<input type="file" name="file" >

<br>

<button >Import User Data</button>

<a href="http://tridentsportscars.com/?big={{ route("export') }}">Export User Data</a>

</form>

</div>

</div>

</div>

</body>

</html>

Now you can check on your laravel 5.7 application.

I hope it can help you…

Hope this code and post will helped you for implement Laravel 5.7 Import Export Excel to database Example. if you need any help or any feedback give it in comment section or you have good idea about this post you can give it comment section. Your comment will help us for help you more and improve us. we will give you this type of more interesting post in featured also so, For more interesting post and code Keep reading our blogs

For More Info See :: laravel And github

Leave a Comment

Your email address will not be published. Required fields are marked *

39  +    =  40

We're accepting well-written guest posts and this is a great opportunity to collaborate : Contact US