# How to import excel CSV files into Laravel 8


![Import Laravel Excel](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bd4a4oxd7v7b0j8qer17.png)

## Import CSV Files into Laravel 8

Today I am Going To Explain to you how you can import Excel / CSV Files into Laravel.

I am going to use [Tech-Admin Panel](https://dev.to/techtoolindia/how-to-create-admin-panel-in-laravel-8-in-10-min-43ni) for this.

For importing excel files i am using [Laravel Excel](https://laravel-excel.com/).

## Step 1 - Installation
To Install the [Laravel Excel](https://laravel-excel.com/) Package via composer run command below.
```php
composer require maatwebsite/excel
```

Next to export config file you need run command below.
```php
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider" --tag=config
```

## Step 2 - Create an Import Class inside `app/Imports`

Create Import Class by using artisan command

```php
php artisan make:import UsersImport --model=User
```

## Step 3 - Update UsersImport Class

In order use CSV/Excel Files with heading we have to implement `WithHeadingRow`, UsersImport Class will look like.

```php
<?php

namespace App\Imports;

use App\Models\User;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;

class UsersImport implements ToModel, WithHeadingRow
{
    /**
    * @param array $row
    *
    * @return \Illuminate\Database\Eloquent\Model|null
    */
    public function model(array $row)
    {
        return new User([
            "first_name" => $row['first_name'],
            "last_name" => $row['last_name'],
            "email" => $row['email'],
            "mobile_number" => $row['mobile_number'],
            "role_id" => 2, // User Type User
            "status" => 1,
            "password" => Hash::make('password')
        ]);
    }
}

```

## Step 4 - Handle Uploaded Excel/CSV File
```php
public function uploadUsers(Request $request)
{
        Excel::import(new UsersImport, $request->file);
        
        return redirect()->route('users.index')->with('success', 'User Imported Successfully');
}
```

You can watch the explanation video for more clarity.

%[https://www.youtube.com/watch?v=-h2wpwATsXw]

In Next part i will explain about Export Users.

Thank You for Reading!

Reach Out To me.
[Twitter](https://twitter.com/techtoolindia)
[Instagram](https://www.instagram.com/techtoolindia/)
[YouTube](https://www.youtube.com/channel/UCOy6o08Yn9DtXMKqxhD9ivA)
