Tutorial Export Excel di Laravel dengan PhpSpreadsheet

Share:

Tutorial Export Excel di Laravel dengan PhpSpreadsheet

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