Fitur “export ke Excel” sangat berguna untuk laporan dan analisis data. Artikel ini membahas cara export data ke Excel dengan PHP dan MySQL — cara cepat tanpa library, dan cara profesional dengan PhpSpreadsheet.

Cara 1: Cepat Tanpa Library
Cara paling sederhana memakai header khusus agar browser mengunduh tabel HTML sebagai file Excel:
<?php
require "koneksi.php";
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=data-produk.xls");
echo "<table border='1'>";
echo "<tr><th>Nama</th><th>Harga</th></tr>";
$data = $koneksi->query("SELECT nama, harga FROM produk");
while ($row = $data->fetch_assoc()) {
echo "<tr>";
echo "<td>" . htmlspecialchars($row["nama"]) . "</td>";
echo "<td>" . $row["harga"] . "</td>";
echo "</tr>";
}
echo "</table>";
?>
Cocok untuk kebutuhan cepat. Kekurangannya: file bukan .xlsx asli, dan Excel kadang memberi peringatan format.
Cara 2: Profesional dengan PhpSpreadsheet
Untuk file .xlsx asli dengan format rapi, gunakan library PhpSpreadsheet. Install lewat Composer:
composer require phpoffice/phpspreadsheet
Lalu buat file export:
<?php
require "vendor/autoload.php";
require "koneksi.php";
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
// judul kolom
$sheet->setCellValue("A1", "Nama");
$sheet->setCellValue("B1", "Harga");
// isi data dari database
$baris = 2;
$data = $koneksi->query("SELECT nama, harga FROM produk");
while ($row = $data->fetch_assoc()) {
$sheet->setCellValue("A$baris", $row["nama"]);
$sheet->setCellValue("B$baris", $row["harga"]);
$baris++;
}
// kirim sebagai unduhan
header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
header("Content-Disposition: attachment; filename=produk.xlsx");
$writer = new Xlsx($spreadsheet);
$writer->save("php://output");
exit;
?>
Kesalahan Umum
- Ada output/spasi sebelum header — menyebabkan file rusak. Pastikan tidak ada echo/spasi sebelum
header(). - “Class not found” — path
vendor/autoload.phpsalah atau library belum di-install.
Kesimpulan
Untuk kebutuhan cepat, cara header Excel sudah cukup. Untuk file profesional dengan format, styling, dan banyak sheet, gunakan PhpSpreadsheet. Fitur export ini melengkapi aplikasi Anda dengan kemampuan laporan yang dibutuhkan dunia kerja.
Referensi: untuk pendalaman, kunjungi dokumentasi resmi PHP (php.net).

