ads

Laravel Import Export CSV




In this tutorial, I am trying to share with you about Laravel Import Export CSV example because today you can be using this Laravel Import Export CSV example from the database of data you can directly insert the data in the database of your project.

Insert multiple data at a time into your database, this blog will help you to insert the data on the database the project using laravel package and laravel package name is "maatwebsite/excel".

"maatwebsite/excel" using this package we can import and export excel data of the database of the project. According to me, this package is best for me to Laravel Import Export CSV task.

If you need to search more about laravel packages you can search here without any more search, this is a perfect site for finding best laravel package - Laravel Package 

For Laravel Import Export CSV follow some steps as defined below
Rule:1
First we need to install the package as I defined for Laravel Import Export CSV

composer require maatwebsite/excel

Rule:2

After installation some steps don't forget to read, this is so much important after installed some package of laravel and then setup into config/app.php file

      'providers' => [
        ....
        Maatwebsite\Excel\ExcelServiceProvider::class,
      ],

      'aliases' => [
        ....
        'Excel' => Maatwebsite\Excel\Facades\Excel::class,
      ],


Rule:3

After saving the app.php file data then apply below command to publish the data for particular package into laravel

php artisan vendor:publish

It will create excel.php file into your config folder once you apply the command :)

Rule:4

After publish command you need to create on routes/web.php file into your config folder and copy code as I defined below

     
      Route::post('import', 'ImportExportController@import')->name('import');
      Route::get('file-import', 'ImportExportController@fileImport');
      Route::get('file-export/{type}', 'ImportExportController@fileExport');
Rule:5

php artisan make:import UsersImport --model=User

Rule:6
create Import Class

  namespace App\Imports;

  use App\User;
  use Maatwebsite\Excel\Concerns\ToModel;
  class UsersImport implements ToModel
  {
    /**
    * @param array $row
    *
    * @return \Illuminate\Database\Eloquent\Model|null
    */
    public function model(array $row)
    {
        return new User([
            'name'     => $row[0],
            'email'    => $row[1], 
            'password' => \Hash::make('123456'),
        ]);
    }
  }

Rule:7
create Export Class


  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();
      }
  }
Rule:8
create controller
-file import route will help you to pass the request for the controller and show response by the controller to view is import blade. Show you can show the response on blade view


namespace App\Http\Controllers;
  
use Illuminate\Http\Request;
use App\Exports\UsersExport;
use App\Imports\UsersImport;
use Maatwebsite\Excel\Facades\Excel;
  
class ImportExportController extends Controller
{
    /**
    * @return \Illuminate\Support\Collection
    */
    public function fileImport()
    {
       return view('import');
    }
   
    /**
    * @return \Illuminate\Support\Collection
    */
    public function fileExport($type) 
    {
        return Excel::download(new UsersExport, $type);
    }
   
    /**
    * @return \Illuminate\Support\Collection
    */
    public function import() 
    {
        Excel::import(new UsersImport,request()->file('file'));
           
        return back();
    }
}
  

Rule:8
create view - resource/views/import.blade.php



<!DOCTYPE html>
<html>
<head>
    <title>Laravel Import Export CSV - <a href="https://www.mtitsolutions.in/">MTitsolutions</a></title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" />
</head>
<body>
   
<div class="container">
    <div class="card">
        <div class="card-header">
            Laravel Import Export CSV - <a href="https://www.mtitsolutions.in/">MTitsolutions</a>
        </div>
        <div class="card-body">
            <form action="{{ route('import') }}" method="POST" enctype="multipart/form-data">
                @csrf
                <input type="file" name="file" class="form-control">
                <br>
                <button class="btn btn-primary">Import User Data</button>
                <a class="btn btn-primary" href="{{ route('export',['type'=>'csv']) }}">Export User Data</a>
            </form>
        </div>
    </div>
</div>
   
</body>
</html>

Now run the code and it will work on your project and check it and inform me if you have any doubt related to this type of code

Thank you.

Post a Comment

Previous Post Next Post