ahmadajah03 Fri Sep 2020 1 year ago

Contoh Tutorial Import/Export Excel dan File CSV pada Laravel 8

Artikel ini akan memberikan contoh eksport import excel laravel 8. Anda akan belajar laravel 8 import export csv. Anda dapat memahami konsep file csv eksport import di laravel 8. Anda akan belajar laravel 8 file impor excel. Anda akan melakukan hal-hal berikut untuk laravel 8 import export csv dari database.

Dalam contoh ini saya menulis kode lengkap tentang cara mengimpor file csv dari database di laravel 8 dan cara mengekspor file csv dari database di laravel 8. Anda dapat dengan mudah mendownload file excel & csv dari database di laravel 8.

Kami akan membuat data import ke file csv, xls sederhana dan juga kami dapat mengimpor data ke database menggunakan file csv di aplikasi laravel 8.

Dalam contoh ini kita akan menggunakan paket komposer maatwebsite/excel untuk tugas import dan eksport. maatwebsite/excel menyediakan cara mudah untuk mengimpor dan mengekspor menggunakan model database. maatwebsite/excel memperbarui versi 3 dan menyediakan cara yang bagus untuk mengimpor data ekspor dari database, jadi ikuti beberapa langkah pertama untuk mendapatkan contoh.

Langkah 1: Install Laravel 8

Di sini, kita perlu menginstal aplikasi Laravel 8 menggunakan perintah di bawah ini, Jadi buka terminal OR command prompt Anda dan jalankan perintah di bawah ini:

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

Langkah 2: Install Paket maatwebsite/excel

Pada langkah ini kita perlu menginstal paket maatwebsite/excel melalui manajer paket Composer, jadi salah satu terminal Anda dan jalankan perintah di bawah ini:

composer require maatwebsite/excel

Sekarang buka file config/app.php dan tambahkan penyedia layanan dan alias.

config/app.php

'providers' => [

    ....

    Maatwebsite\Excel\ExcelServiceProvider::class,

],

'aliases' => [

    ....

    'Excel' => Maatwebsite\Excel\Facades\Excel::class,

],

Langkah 3: Buat Data Dummy

Pada langkah ini, kita harus meminta tabel "users" dengan beberapa record dummy, jadi kita bisa mengimpor dan mengekspor. Jadi pertama-tama Anda harus menjalankan migrasi default yang disediakan oleh laravel menggunakan perintah berikut:

php artisan migrate

Setelah itu kita perlu menjalankan perintah berikut untuk menghasilkan pengguna dummy:

php artisan tinker

User::factory()->count(20)->create()

Langkah 4: Tambahkan Route

Pada langkah ini, kita perlu membuat route file eksport import. jadi buka file "routes/web.php" Anda dan tambahkan rute berikut.

routes/web.php

<?php
  
use Illuminate\Support\Facades\Route;
    
use App\Http\Controllers\MyController;
  
/*
|--------------------------------------------------------------------------
| 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('importExportView', [MyController::class, 'importExportView']);
Route::get('export', [MyController::class, 'export'])->name('export');
Route::post('import', [MyController::class, 'import'])->name('import');

Langkah 5: Buat Class Import

Dalam versi maatwebsite 3 menyediakan cara untuk membangun class import dan kita harus menggunakan controller. Jadi ini akan menjadi cara yang bagus untuk membuat class Import baru. Jadi Anda harus menjalankan perintah berikut dan mengubah kode berikut pada file itu:

php artisan make:import UsersImport --model=User

app/Imports/UsersImport.php

<?php
  
namespace App\Imports;
  
use App\Models\User;
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([
            'name'     => $row['name'],
            'email'    => $row['email'], 
            'password' => \Hash::make($row['password']),
        ]);
    }
}

Langkah 6: Buat Class Eksport

Maatwebsite 3 versi menyediakan cara untuk membangun class eksport dan harus kita gunakan sebagai controller. Jadi ini akan menjadi cara yang bagus untuk membuat class Eksport baru. Jadi Anda harus menjalankan perintah berikut dan mengubah kode berikut pada file itu:

php artisan make:export UsersExport --model=User

app/Exports/UsersExport.php

<?php
  
namespace App\Exports;
  
use App\Models\User;
use Maatwebsite\Excel\Concerns\FromCollection;
  
class UsersExport implements FromCollection
{
    /**
    * @return \Illuminate\Support\Collection
    */
    public function collection()
    {
        return User::all();
    }
}

Langkah 7: Buat Controller

Pada langkah ini, sekarang kita harus membuat controller baru sebagai MyController di pat ini "app/Http /Controllers/MyController.php". controller ini akan mengelola semua importExportView, permintaan eksport dan import dan respons pengembalian, jadi letakkan konten di bawah ini di file pengontrol:

app/Http/Controllers/MyController.php

<?php
     
namespace App\Http\Controllers;
    
use Illuminate\Http\Request;
use App\Exports\UsersExport;
use App\Imports\UsersImport;
use Maatwebsite\Excel\Facades\Excel;
    
class MyController extends Controller
{
    /**
    * @return \Illuminate\Support\Collection
    */
    public function importExportView()
    {
       return view('import');
    }
     
    /**
    * @return \Illuminate\Support\Collection
    */
    public function export() 
    {
        return Excel::download(new UsersExport, 'users.xlsx');
    }
     
    /**
    * @return \Illuminate\Support\Collection
    */
    public function import() 
    {
        Excel::import(new UsersImport,request()->file('file'));
             
        return back();
    }
}

Langkah 8: Buat File Blade

Pada langkah terakhir, mari buat import.blade.php (resources/views/import.blade.php) untuk layout dan kita akan menulis kode desain di sini dan meletakkan kode berikut:

resources/views/import.blade.php

<!DOCTYPE html>
<html>
<head>
  <title>Laravel 8 Import Export Excel to database Example - Medikre.com</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 bg-light mt-3">
        <div class="card-header">
          Laravel 8 Import Export Excel to database Example - Medikre.com
        </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-success">Import User Data</button>
                <a class="btn btn-warning" href="{{ route('export') }}">Export User Data</a>
            </form>
        </div>
    </div>
</div>
   
</body>
</html>

Sekarang kamu bisa cek aplikasi laravel 8. Sekarang siap untuk menjalan aplikasi export/import excel dan csv kamu. ketik perintah dibawah ini untuk menjalankan cepat.

php artisan serve

Sekarang Anda dapat membuka URL di bawah di browser Anda:

http://localhost:8000/importExportView

Saya harap ini bisa membantu Anda.

export file csv laravel 8 tutorial laravel 8 laravel import excel laravel 8 tutorial export excel laravel 8 tutorial