Days
Hours
Minutes
Seconds

Promo Grand Opening

15% OFF

Khusus Pelanggan Baru

Tutorial Laravel #38: Export Excel dengan Laravel

Tentu, ini artikel yang Anda minta:


 

 

Mengekspor data ke format Excel adalah fitur umum yang sangat dibutuhkan dalam aplikasi bisnis, memungkinkan pengguna untuk menganalisis, mengarsipkan, atau membagikan data dengan lebih mudah. Laravel, seperti halnya fitur PDF, tidak memiliki kemampuan ekspor Excel bawaan, tetapi dengan bantuan package pihak ketiga yang sangat populer, Laravel Excel (Maatwebsite/Laravel-Excel), tugas ini menjadi sangat sederhana.

Dalam tutorial Laravel ke-38 ini, kita akan membahas cara menginstal dan menggunakan Laravel Excel untuk mengekspor data dari database Anda ke file Excel (.xlsx atau .csv) di aplikasi Laravel.


 

1. Menginstal Laravel Excel

 

Langkah pertama adalah menginstal paket maatwebsite/excel melalui Composer.

Buka terminal Anda dan jalankan perintah berikut:

Bash

composer require maatwebsite/excel

Setelah instalasi selesai, Laravel Excel akan secara otomatis ditemukan oleh Laravel berkat package discovery.


 

2. Membuat Kelas Export

 

Laravel Excel menggunakan konsep “Export Class” untuk mendefinisikan data apa yang akan diekspor dan bagaimana formatnya.

Gunakan perintah Artisan untuk membuat kelas export baru:

Bash

php artisan make:export UsersExport --model=User

Perintah ini akan membuat file app/Exports/UsersExport.php dan secara otomatis mengaitkannya dengan model User.

 

Memodifikasi Kelas Export

 

Buka file app/Exports/UsersExport.php dan modifikasi seperti contoh berikut:

PHP

<?php

namespace App\Exports;

use App\Models\User; // Pastikan Anda mengimpor model User
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings; // Untuk menambahkan header kolom

class UsersExport implements FromCollection, WithHeadings
{
    /**
    * @return \Illuminate\Support\Collection
    */
    public function collection()
    {
        // Mengambil semua data user dari database
        return User::all();
    }

    /**
     * Menambahkan baris header di file Excel.
     *
     * @return array
     */
    public function headings(): array
    {
        return [
            'ID',
            'Nama',
            'Email',
            'Email Verified At',
            'Password', // Sebaiknya tidak mengekspor password dalam produksi
            'Created At',
            'Updated At',
        ];
    }
}

Dalam contoh ini:

  • FromCollection: Interface ini mengharuskan kita mengimplementasikan metode collection() yang akan mengembalikan collection data yang akan diekspor. Dalam kasus ini, kita mengembalikan semua data dari model User.
  • WithHeadings: Interface ini memungkinkan kita untuk menambahkan baris judul (header) pada file Excel menggunakan metode headings(). Ini sangat membantu agar file Excel mudah dibaca.

Penting: Dalam produksi, hindari mengekspor data sensitif seperti password, meskipun sudah di-hash. Filter kolom yang tidak perlu.


 

3. Membuat Controller dan Route

 

Sekarang, kita akan membuat sebuah controller yang akan memicu proses ekspor.

Gunakan perintah Artisan untuk membuat controller baru:

Bash

php artisan make:controller UserController

Kemudian, modifikasi app/Http/Controllers/UserController.php seperti di bawah ini:

PHP

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Exports\UsersExport; // Impor kelas export yang telah kita buat
use Maatwebsite\Excel\Facades\Excel; // Impor facade Excel

class UserController extends Controller
{
    public function export()
    {
        return Excel::download(new UsersExport, 'users.xlsx');
    }
}

Terakhir, definisikan rute di routes/web.php untuk memicu fungsi ini:

PHP

use App\Http\Controllers\UserController;

Route::get('/users/export', [UserController::class, 'export'])->name('users.export');

 

4. Menggunakan Fitur Export

 

Sekarang, jika Anda mengakses URL /users/export di browser Anda, Laravel akan menjalankan controller UserController, membuat instance UsersExport, dan memicu unduhan file Excel bernama users.xlsx yang berisi semua data pengguna dari database Anda.

 

Mengekspor ke CSV

 

Jika Anda ingin mengekspor ke format CSV, Anda cukup mengubah ekstensi file di metode download():

PHP

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

 

Filtering Data untuk Export

 

Seringkali, Anda tidak ingin mengekspor semua data. Anda bisa menambahkan logika filtering di metode collection() pada UsersExport Anda.

Contoh: Mengekspor hanya user yang terdaftar setelah tanggal tertentu.

PHP

// app/Exports/UsersExport.php
use Carbon\Carbon;

public function collection()
{
    return User::where('created_at', '>=', Carbon::parse('2023-01-01'))->get();
}

Atau, Anda bisa melewatkan parameter ke constructor UsersExport:

PHP

// app/Exports/UsersExport.php

private $year;

public function __construct(int $year)
{
    $this->year = $year;
}

public function collection()
{
    return User::whereYear('created_at', $this->year)->get();
}

Dan di controller:

PHP

// app/Http/Controllers/UserController.php

public function exportByYear(Request $request, int $year)
{
    return Excel::download(new UsersExport($year), 'users_' . $year . '.xlsx');
}

 

Kesimpulan

 

Laravel Excel adalah solusi yang sangat ampuh dan fleksibel untuk kebutuhan ekspor data di aplikasi Laravel Anda. Dengan sintaks yang bersih dan fitur yang kaya, Anda dapat dengan mudah menghasilkan file Excel atau CSV yang kompleks, menghemat waktu pengembangan, dan memberikan fungsionalitas yang berharga bagi pengguna Anda, baik mereka berada di Malang, Jawa Timur, atau di mana pun.

Wawasan Terbaru

Gemini_Generated_Image_wfw5uwwfw5uwwfw5
Mengenal Dunia Grafis: Dari Piksel Hingga Vektor, Kekuatan Visual di Era Digital
Gemini_Generated_Image_b6dimfb6dimfb6di
Mengenal Foundation: Kerangka Kerja Front-End Profesional untuk Web Responsif
Gemini_Generated_Image_sx3ztpsx3ztpsx3z
CSS
Mempercantik Website dengan CSS: Seniman di Balik Tampilan Web 🎨
Gemini_Generated_Image_e013qke013qke013
Mengenal HTML: Fondasi dari Setiap Halaman Website 🌐
Gemini_Generated_Image_ldki4nldki4nldki
Menyelami Dunia Coding: Seni Berbicara dengan Komputer
Gemini_Generated_Image_dpvliydpvliydpvl
Menguasai GIT: Fondasi Penting dalam Dunia Pengembangan Perangkat Lunak
Gemini_Generated_Image_sqcib9sqcib9sqci
Tutorial Python #12: Mengenal Jenis-jenis Operator dalam Python
Gemini_Generated_Image_o1bw3do1bw3do1bw
Memahami Tipe Data Dictionary dalam Python
Gemini_Generated_Image_ko4ixfko4ixfko4i
Mengenal Tipe Data Set dalam Python
Gemini_Generated_Image_1xop7m1xop7m1xop
Tuple dalam Python: Pengenalan dan Tutorial

Wawasan Serupa

Gemini_Generated_Image_q0o3sbq0o3sbq0o3
Gemini_Generated_Image_mem6cgmem6cgmem6
Gemini_Generated_Image_d8a5kwd8a5kwd8a5
Gemini_Generated_Image_m9wyvsm9wyvsm9wy

Ceritakan Detail Proyekmu

Mulai dari 30K aja, solusi IT kamu langsung jalan tanpa drama.

Kata Mereka Tentang Solusi Coding

Dipercaya oleh lebih dari 200++ client untuk menyelesaikan proyeknya dengan total 250++ proyek dari berbagai jenis proyek