Membuat Export Dan Import File Excel Atau CSV Pada Laravel 9 - CRUDPRO

Membuat Export Dan Import File Excel Atau CSV Pada Laravel 9

Dalam tutorial ini, saya akan menunjukkan contoh file laravel 9 import export csv dan excel. Impor data ke file xls, csv serta impor data ke database menggunakan file csv di laravel 9.

Gunakan Plugin maatwebsite/excel memungkinkan Anda mengimport dan mengeksport file csv dan excel dengan mudah dalam contoh laravel 9. Di laravel 9 impor file csv/excel gunakan kelas impor dan di laravel 9 eksport file csv/excel gunakan kelas eksport.

Dengan menggunakan contoh ini, Anda dapat dengan mudah mengimport, mengeksport, dan mengunduh file csv dan excel dari database Anda menggunakan paket composer maatwebsite/excel. maatwebsite/excel menyediakan cara mudah untuk mengimport dan mengeksport file csv di laravel 9 menggunakan model database.

Jadi mari kita lihat cara import file csv dan excel di laravel 9, cara import/export file csv dan excel di laravel 9, cara download file csv dan excel di laravel 9.

Langkah 1: Buat proyek baru di laravel 9

Karena kita membuat proyek baru yang dikonfigurasi untuk contoh ini, gunakan perintah di bawah ini untuk membuat proyek baru.

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

Langkah 2: Pengaturan database

Langkah kedua adalah mengkonfigurasi database seperti nama database, username dan password. Jadi buka file .env dan masukkan semua detail seperti ini:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=database name
DB_USERNAME=database username
DB_PASSWORD=database password

Langkah 3: Instal Paket

Selanjutnya, instal paket Maatwebsite menggunakan perintah di bawah ini.

composer require maatwebsite/excel

Langkah 4: Buat catatan dummy menggunakan Tinker

Setelah menambahkan alias dan provider, tambahkan beberapa dummy record ke database menggunakan perintah di bawah ini.

php artisan tinker

factory(App\User::class, 100)->create();

Langkah 5: Buat routes baru

Pada langkah ini, kita akan membuat routes baru untuk contoh kita di jalur ini route/web.php.

<?php
  
use Illuminate\Support\Facades\Route;
  
use App\Http\Controllers\Import_Export_Controller;
  
/*
|--------------------------------------------------------------------------
| 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::controller(Import_Export_Controller::class)->group(function(){
    Route::get('import_export', 'importExport');
    Route::post('import', 'import')->name('import');
    Route::get('export', 'export')->name('export');
});

Langkah 6: Tambahkan controller

Buat Import_Export_Controller dengan perintah berikut:

Setelah menjalankan perintah ini, Anda perlu menambahkan kode berikut ke controller ini.

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Exports\ExportUsers;
use App\Imports\ImportUsers;
use Maatwebsite\Excel\Facades\Excel;

class Import_Export_Controller extends Controller
{
     public function importExport()
    {
       return view('import');
    }

    public function export() 
    {
        return Excel::download(new ExportUsers, 'users.xlsx');
    }

    public function import() 
    {
        Excel::import(new ImportUsers, request()->file('file'));
            
        return back();
    }
}

Langkah 7: Buat Kelas Import

Selanjutnya, buat kelas impor menggunakan perintah di bawah ini.

php artisan make:import ImportUsers --model=User

Setelah menjalankan perintah ini, Anda akan menemukan ImportUsers.php di path app\Imports\ImportUsers.php. Tambahkan kode berikut ke file ini.

<?php

namespace App\Imports;

use App\User;
use Maatwebsite\Excel\Concerns\ToModel;

class ImportUsers 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],
        ]);
    }
}

Langkah 8: Buat Kelas eksport

Kemudian buat kelas eksport dengan perintah berikut:

php artisan make:export ExportUsers --model=User

Setelah menjalankan perintah ini, Anda akan menemukan ExportUsers.php di path app\Export\ExportUsers.php. Tambahkan kode berikut ke file ini.

<?php

namespace App\Exports;

use App\User;
use Maatwebsite\Excel\Concerns\FromCollection;

class ExportUsers implements FromCollection
{
    /**
    * @return \Illuminate\Support\Collection
    */

    public function collection()
    {
        return User::all();
    }
}

Langkah 9: Buat File Blade untuk Tampilan

Sekarang buat file import.blade.php untuk tampilan Anda di jalur resources/views/import.blade.php ini.

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Laravel 9 Import Export CSV/EXCEL File Example - Websolutionstuff</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
    <h3>Laravel 9 Import Export CSV/EXCEL File Example - Websolutionstuff</h3>
    <form action="{{ route('import') }}" method="POST" name="importform"
      enctype="multipart/form-data">
        @csrf
        <div class="form-group">
            <label for="file">File:</label>
            <input id="file" type="file" name="file" class="form-control">
        </div>
        <div class="form-group">
            <a class="btn btn-info" href="{{ route('export') }}">Export File</a>
        </div> 
        <button class="btn btn-success">Import File</button>
    </form>
</div>
</body>
</html>

Salin perintah di bawah ini dan jalankan di terminal Anda.

php artisan serve

Akhirnya, Anda dapat menjalankan proyek ini di browser Anda. dengan mengakses url seperti ini : http://localhost:8000/import_export

Selamat mencoba, tetap semangat dan semoga berhasil ya :)