Laravel 8 Impor Ekspor Excel & Contoh File CSV

Laravel Excel dirancang untuk menjadi PhpSpreadsheet rasa Laravel. Ini adalah pembungkus yang dapat diatur dan elegan di sekitar PhpSpreadsheet untuk menyederhanakan ekspor dan impor. PhpSpreadsheet adalah pustaka berbasis php yang memungkinkan Anda membaca dan menulis berbagai format file spreadsheet, seperti Excel dan LibreOffice Calc. Laravel Excel memiliki fitur-fitur berikut:

  • Ekspor koleksi ke Excel dengan mudah.
  • Ekspor kueri dengan chunking otomatis untuk kinerja yang lebih baik.
  • Ekspor antrian untuk kinerja yang lebih baik.
  • Ekspor tampilan Blade dengan mudah ke Excel.
  • Impor ke koleksi dengan mudah.
  • Baca file Excel dalam potongan.
  • Tangani sisipan impor dalam batch.

Jika Anda ingin membuat impor dan ekspor yang mudah, fungsionalitas file excel, tutorial laravel maatwebsite/excel ini adalah yang terbaik untuk Anda.

Di akhir tutorial ini, Anda akan dapat mengunduh atau mengimpor file excel & CSV langsung dari database di aplikasi laravel.

Persyaratan

  • PHP: ^7.2|^8.0
  • Laravel: ^5.8
  • PhpSpreadsheet: ^1.15
  • ekstensi PHP php_zip diaktifkan
  • ekstensi PHP php_xml diaktifkan
  • ekstensi PHP php_gd2 diaktifkan
  • ekstensi PHP php_iconv diaktifkan
  • ekstensi PHP php_simplexml diaktifkan
  • ekstensi PHP php_xmlreader diaktifkan
  • ekstensi PHP php_zlib diaktifkan

Langkah 1: Instal Proyek Laravel

Pertama, buka Terminal dan jalankan perintah berikut untuk membuat proyek laravel baru:

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

atau, jika Anda telah menginstal Laravel Installer sebagai dependensi komposer global:

laravel new laravel-excel

Langkah 2: Konfigurasikan Detail Basis Data

Setelah, Instalasi Buka direktori root proyek, buka file .env, dan atur detail basis data sebagai berikut:

DB_CONNECTION=mysql 
DB_HOST=127.0.0.1 
DB_PORT=3306 
DB_DATABASE=<DATABASE NAME>
DB_USERNAME=<DATABASE USERNAME>
DB_PASSWORD=<DATABASE PASSWORD>

Baca Juga: Unggah File dan Gambar dengan Validasi di Laravel

Langkah 3: Instal paket maatwebsite/excel

Anda dapat menginstal Laravel Excel melalui komposer. Anda harus menjalankan perintah ini untuk instalasi.

composer require maatwebsite/excel

Daftarkan Layanan Plugin di Penyedia & Alias

Anda dapat memiliki kode berikut ditempatkan di dalam config/app.php mengajukan.

'providers' => [
  MaatwebsiteExcelExcelServiceProvider::class,
 ],  

'aliases' => [ 
  'Excel' => MaatwebsiteExcelFacadesExcel::class,
], 

Jalankan vendor, publikasikan perintah, dan publikasikan konfigurasi.

php artisan vendor:publish --provider="MaatwebsiteExcelExcelServiceProvider" --tag=config

Ini akan membuat file konfigurasi baru bernama config/excel.php.

Langkah 4: Hasilkan Data Palsu dan Migrasi Tabel

Pada langkah Pertama, Kami memigrasikan tabel pengguna. Setelah migrasi berjalan dengan sukses Kami pindah ke langkah kedua.

php artisan migrate

Pada Langkah Kedua, Kami menghasilkan catatan palsu. Di sini Kami menggunakan tinker untuk menghasilkan catatan palsu. Anda dapat menggunakan metode yang berbeda sesuai kebutuhan Anda.

php artisan tinker

Setelah Membuka tinker, Anda perlu menjalankan perintah ini untuk menghasilkan catatan palsu di database kami.

User::factory()->count(100)->create();

Langkah 5: Buat Rute

Pada langkah ini, Kami akan menambahkan rute untuk menangani permintaan impor dan ekspor file.

use AppHttpControllersUserController;

Route::get('/file-import',[UserController::class,'importView'])->name('import-view');
Route::post('/import',[UserController::class,'import'])->name('import');
Route::get('/export-users',[UserController::class,'exportUsers'])->name('export-users');

Langkah 6: Buat Kelas Impor

Maatwebsite menyediakan cara untuk membangun kelas impor dan kita harus menggunakannya di controller. Jadi itu akan menjadi cara yang bagus untuk membuat kelas Impor baru. Jadi Anda harus menjalankan perintah berikut dan mengubah kode berikut pada file itu:

php artisan make:import ImportUser --model=User

app/Imports/ImportUser.php

<?php

namespace AppImports;

use AppModelsUser;
use MaatwebsiteExcelConcernsToModel;

class ImportUser implements ToModel
{
    /**
    * @param array $row
    *
    * @return IlluminateDatabaseEloquentModel|null
    */
    public function model(array $row)
    {
        return new User([
            'name' => $row[0],
            'email' => $row[1],
            'password' => bcrypt($row[2]),
        ]);
    }
}

Di sini Anda dapat melihat peta CSV atau nilai kolom excel ke Model Eloquent kami. Anda perlu memformat kolom CSV atau excel itu saat Anda memetakan di kelas impor Anda.

Baca Juga: Cara Menginstal MongoDB di Ubuntu 20.04

Langkah 7: Buat Kelas Ekspor

Maatwebsite menyediakan cara untuk membangun kelas ekspor dan kita harus menggunakannya di controller. Jadi itu akan menjadi cara yang bagus untuk membuat kelas ekspor baru. Jadi Anda harus menjalankan perintah berikut dan mengubah kode berikut pada file itu:

php artisan make:export ExportUser --model=User

app/Exports/ExportUser.php

<?php

namespace AppExports;

use AppModelsUser;
use MaatwebsiteExcelConcernsFromCollection;

class ExportUser implements FromCollection
{
    /**
    * @return IlluminateSupportCollection
    */
    public function collection()
    {
        return User::select('name','email')->get();
    }
}

Langkah 8: Buat Pengontrol

Selanjutnya kita harus membuat controller untuk menampilkan form upload record file CSV atau excel. Mari Buat pengontrol bernama UserController menggunakan perintah yang diberikan di bawah ini:

php artisan make:controller UserController

Setelah perintah di atas dijalankan, itu akan membuat file pengontrol UserController.php di dalam aplikasi/Http/Pengontrol direktori. Membuka UserController.php file dan masukkan kode ini ke dalam file itu.

<?php

namespace AppHttpControllers;

use IlluminateHttpRequest;
use MaatwebsiteExcelFacadesExcel;
use AppImportsImportUser;
use AppExportsExportUser;
use AppModelsUser;

class UserController extends Controller
{
    public function importView(Request $request){
        return view('importFile');
    }

    public function import(Request $request){
        Excel::import(new ImportUser, $request->file('file')->store('files'));
        return redirect()->back();
    }

    public function exportUsers(Request $request){
        return Excel::download(new ExportUser, 'users.xlsx');
    }
}

Langkah 9: Buat Blade / Lihat File

Kami telah mencapai langkah terakhir. Secara umum, di sini kita perlu merumuskan tampilan untuk menangani impor dan ekspor melalui frontend. Membuat resources/views/importFile.blade.php file untuk mengatur tampilan. Tempatkan kode berikut di dalam file tampilan blade:

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Laravel 8 Import Export Excel & CSV File - TechvBlogs</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css">
</head>

<body>
    <div class="container mt-5 text-center">
        <h2 class="mb-4">
            Laravel 8 Import Export Excel & CSV File - <a href="https://techvblogs.com/blog/laravel-import-export-excel-csv-file?ref=repo" target="_blank">TechvBlogs</a>
        </h2>
        <form action="{{ route('import') }}" method="POST" enctype="multipart/form-data">
            @csrf
            <div class="form-group mb-4">
                <div class="custom-file text-left">
                    <input type="file" name="file" class="custom-file-input" id="customFile">
                    <label class="custom-file-label" for="customFile">Choose file</label>
                </div>
            </div>
            <button class="btn btn-primary">Import Users</button>
            <a class="btn btn-success" href="{{ route('export-users') }}">Export Users</a>
        </form>
    </div>
</body>

</html>

Jalankan Aplikasi Laravel

Terakhir, kita harus menjalankan aplikasi Laravel, untuk ini, kita harus pergi ke command prompt, dan menulis perintah berikut:

php artisan serve

Setelah menjalankan perintah ini, Buka http://localhost:8000/file-import di peramban Anda.

Terima kasih untuk membaca blog ini.

Baca Juga: Cara Menginstal Git Di Ubuntu 20.04

Jika Anda ingin mengelola Server VPS / VM Anda tanpa menyentuh baris perintah, buka dan Periksa tautan ini. ServerAvatar memungkinkan Anda dengan cepat mengatur situs web WordPress atau PHP Kustom di VPS / VM di a hitungan menit. Anda dapat meng-host beberapa situs web pada satu VPS / VM, mengonfigurasi sertifikat SSL, dan memantau kesehatan server Anda tanpa pernah menyentuh antarmuka baris perintah.

Jika Anda memiliki pertanyaan atau keraguan tentang topik ini, jangan ragu untuk menghubungi kami. Kami akan mencoba menghubungi Anda.