Menggunakan PhpSpreadsheet di Laravel untuk mengekspor laporan dari database bisa menjadi tugas yang cukup mudah jika Anda mengikuti langkah-langkah yang tepat. Berikut ini adalah panduan langkah demi langkah untuk melakukannya
Library ini dapat anda gunakan di semua versi laravel terbaru. Saya melakukan uji coba pada laravel versi 10 dan work untuk versi sebelum dan sesudahnya.
1. Instalasi PhpSpreadsheet
Pertama, Anda perlu menginstal PhpSpreadsheet menggunakan Composer. Jalankan perintah berikut di terminal:
composer require phpoffice/phpspreadsheet
2. Buat Controller
Buat controller baru untuk mengelola ekspor data. Anda bisa membuatnya dengan perintah artisan:
php artisan make:controller ReportController
3. Buat Fungsi Ekspor di Controller
Buka `ReportController` dan tambahkan fungsi untuk mengekspor data ke file Excel. Misalnya, tambahkan fungsi `export`:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use App\Models\User; // Ganti dengan model Anda
class ReportController extends Controller
{
public function export()
{
// Ambil data dari database
$data = User::all();
// Buat instance baru dari Spreadsheet
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
// Tambahkan judul kolom
$sheet->setCellValue('A1', 'ID');
$sheet->setCellValue('B1', 'Nama');
$sheet->setCellValue('C1', 'Email');
// Tambahkan judul kolom lainnya sesuai kebutuhan
// Tambahkan data dari database ke spreadsheet
$row = 2; // Baris dimulai dari 2 karena baris 1 adalah judul kolom
foreach ($data as $item) {
$sheet->setCellValue('A' . $row, $item->id);
$sheet->setCellValue('B' . $row, $item->name);
$sheet->setCellValue('C' . $row, $item->email);
// Tambahkan data lainnya sesuai kebutuhan
$row++;
}
// Buat writer untuk menulis file Excel
$writer = new Xlsx($spreadsheet);
$fileName = 'report.xlsx';
$temp_file = tempnam(sys_get_temp_dir(), $fileName);
// Tulis file ke lokasi sementara
$writer->save($temp_file);
// Berikan respon file kepada pengguna
return response()->download($temp_file, $fileName)->deleteFileAfterSend(true);
}
}
4. Tambahkan Route
Tambahkan route untuk mengakses fungsi ekspor di `routes/web.php`:
use App\Http\Controllers\ReportController;
Route::get('/export', [ReportController::class, 'export']);
5. Uji Coba
Sekarang, Anda dapat mengakses URL `/export` di browser Anda untuk mengunduh file Excel yang berisi data dari database Anda. Anda dapat memodifikasi script di atas berdasarkan panduan ini, semoga tutorial singkat ini bermanfaat dan membantu. Jika ada pertanyaan, silahkan tanya langsung di kolom komentar di bawah ini sekian dan terima kasih.
No comments
Jangan lupa kasih komentar ya!. Karena komentar kalian membantu kami menyediakan informasi yang lebih baik
Tidak boleh menyertakan link atau promosi produk saat berkomentar. Komentar tidak akan ditampilkan. Hubungi 081271449921(WA) untuk dapat menyertakan link dan promosi