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