Belajar PHP

Membuat Export Data ke Excel dan CSV dengan PHP (Lengkap + Contoh Kode)

Membuat Export Data ke Excel dan CSV dengan PHP (Lengkap + Contoh Kode)

Tutorial lengkap cara export data ke Excel dan CSV dengan PHP. Membahas query database, header file, dan contoh implementasi praktis.


Pengenalan Export Data di PHP

Fitur export data ke Excel dan CSV sangat penting dalam aplikasi web, terutama untuk laporan, rekap data, dan arsip. Dengan PHP, Anda dapat menghasilkan file Excel atau CSV secara langsung dari data database.

Persiapan Database Contoh

Misalkan kita memiliki tabel users berikut:


CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    email VARCHAR(100),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
  

Koneksi Database MySQL

Buat file koneksi.php:


<?php
$conn = mysqli_connect("localhost", "root", "", "belajarphp");

if (!$conn) {
    die("Koneksi database gagal");
}
?>
  

Export Data ke Excel dengan PHP

File Excel dapat dibuat menggunakan format .xls dengan header khusus.

File: export_excel.php


<?php
include 'koneksi.php';

header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=data_users.xls");

echo "No\tNama\tEmail\tTanggal\n";

$query = mysqli_query($conn, "SELECT * FROM users");
$no = 1;

while ($row = mysqli_fetch_assoc($query)) {
    echo $no++ . "\t" . 
         $row['name'] . "\t" . 
         $row['email'] . "\t" . 
         $row['created_at'] . "\n";
}
?>
  

Export Data ke CSV dengan PHP

Format CSV lebih ringan dan kompatibel dengan banyak aplikasi.

File: export_csv.php


<?php
include 'koneksi.php';

header("Content-Type: text/csv");
header("Content-Disposition: attachment; filename=data_users.csv");

$output = fopen("php://output", "w");
fputcsv($output, ['No', 'Nama', 'Email', 'Tanggal']);

$query = mysqli_query($conn, "SELECT * FROM users");
$no = 1;

while ($row = mysqli_fetch_assoc($query)) {
    fputcsv($output, [
        $no++,
        $row['name'],
        $row['email'],
        $row['created_at']
    ]);
}

fclose($output);
?>
  

Membuat Tombol Export di Halaman Web

Tambahkan tombol export agar mudah diakses pengguna:


<a href="export_excel.php">Export Excel</a> |
<a href="export_csv.php">Export CSV</a>
  

Penjelasan Singkat Kode

  • header() digunakan untuk menentukan jenis file.
  • Content-Disposition memaksa browser mengunduh file.
  • fputcsv() mempermudah pembuatan file CSV.
  • php://output mengirim file langsung ke browser.

Tips Keamanan dan Optimasi

  • Batasi akses export hanya untuk user tertentu (login).
  • Gunakan pagination jika data sangat besar.
  • Escape data untuk mencegah karakter rusak.
  • Gunakan streaming output untuk performa.

Kesimpulan

Membuat export data ke Excel dan CSV dengan PHP dapat dilakukan tanpa library tambahan. Dengan teknik header dan query database yang tepat, Anda bisa menghasilkan laporan yang siap digunakan.

FAQ (Pertanyaan Umum)

Apakah export Excel harus menggunakan library?

Tidak. Untuk data sederhana, Anda bisa langsung menggunakan format .xls.

Apa perbedaan Excel dan CSV?

Excel mendukung format tabel dan styling, sedangkan CSV hanya teks dengan pemisah koma.

Apakah CSV bisa dibuka di Excel?

Ya, file CSV bisa dibuka langsung di Microsoft Excel.

Bagaimana jika data sangat banyak?

Gunakan teknik streaming dan filter data agar tidak membebani server.

Tags

#PHP #ExportExcel #ExportCSV #MySQL #LaporanData #BelajarPHP

Ruang Diskusi

Tinggalkan Komentar

Belum ada komentar. Jadilah yang pertama berkomentar!