Lompat ke konten Lompat ke sidebar Lompat ke footer

Membuat Custom Export To Excel dengan blade layout mudah di Laravel 10

 


sebelumnya saya sudah membuat pertama yg lebih gampang tetapi tidk bisa di custom dengan blade layout : https://www.faranramdan.com/2023/11/cara-buat-export-data-to-excel-di.html


kali ini saya akan membuat dengan tampilan blade yg lebih flaksible untuk di ubah

Langkah 1: Instalasi Composer

composer require maatwebsite/excel --ignore-platform-reqs




Langkah 2: Buat Model

php artisan make:export UsersExport --model=User



Buka file UsersExport.php, isikan seperti dibawah
<?php

namespace App\Exports;

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

use Illuminate\Contracts\View\View;
use Maatwebsite\Excel\Concerns\FromView;

class UsersExport implements FromView
{
    public function view(): View
    {
        $data = [
            'title' => 'Export PDF - Ombudsman',
            'date' => date('m/d/Y'),
            'users' => User::all()
        ];
        return view('excel', $data);
        // return view('excel', [
        //     'user' => User::all()
        // ]);
    }
}


Langkah 3: Buat Controller


<?php

namespace App\Http\Controllers;

use App\Exports\UsersExport;
use Maatwebsite\Excel\Facades\Excel;

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


Langkah 4: Buat Blade Layout

pada excel.blade.php isikan
<!DOCTYPE html>
<html>
<head>
    <title>Export PDF - Ombudsman</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
</head>
<body>
    <h1>{{ $title }}</h1>
    <p>{{ $date }}</p>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
    tempor incididunt ut labore et dolore magna aliqua.</p>
 
    <table class="table table-bordered">
        <tr>
            <th>ID</th>
            <th>Name</th>
            <th>Email</th>
        </tr>
        @foreach($users as $user)
        <tr>
            <td>{{ $user->id }}</td>
            <td>{{ $user->name }}</td>
            <td>{{ $user->email }}</td>
        </tr>
        @endforeach
    </table>
 
</body>
</html>

Langkah 5: Definisikan Route

Tambahkan definisi route di file web.php:

use App\Http\Controllers\UsersController; Route::get('users/export/', [UsersController::class, 'export']);

Anda bisa mencobanya dengan ketik
http://localhost:8000/users/export/


tamat ccoyyyyyy