Pernahkah kamu merasa kesulitan ketika harus mengeluarkan data dari database ke dalam bentuk Excel? Kadang-kadang, kita memang perlu melakukan ekspor data ke Excel karena alasan tertentu. Misalnya, kamu ingin membuat laporan keuangan atau ingin melakukan analisis data menggunakan tools yang hanya dapat mengakses file Excel.
Nah, di artikel ini kita akan membahas cara melakukan ekspor data dari database ke Excel dengan menggunakan library PhpSpreadsheet. PhpSpreadsheet adalah library PHP yang powerful untuk membuat, membaca, dan menulis file Excel. Library ini sangat fleksibel dan mudah digunakan, serta memiliki dukungan yang baik dari komunitas PHP.
Sebelum memulai, pastikan kamu sudah memahami dasar-dasar PHP dan SQL. Jika masih belum memahami, kamu bisa belajar terlebih dahulu sebelum melanjutkan ke tutorial ini.
## Mengambil Data dari Database dengan PHP
Langkah pertama yang harus kita lakukan adalah mengambil data dari database dengan bantuan PHP. Sebagai contoh, kita akan mengambil data dari tabel “users” yang memiliki kolom “id”, “name”, dan “email”. Berikut adalah contoh kode untuk mengambil data dari tabel “users” menggunakan PHP :
“`php
// Koneksi ke database
$conn = mysqli_connect(“localhost”, “username”, “password”, “database”);
// Query untuk mengambil data dari tabel users
$query = “SELECT id, name, email FROM users”;
// Eksekusi query
$result = mysqli_query($conn, $query);
// Buat array kosong untuk menampung data
$data = array();
// Looping melalui result set
while ($row = mysqli_fetch_assoc($result))
// Tambahkan data ke dalam array
$data[] = $row;
“`
Kode di atas membuka koneksi ke database dan melakukan query untuk mengambil data dari tabel “users”. Hasil query kemudian disimpan dalam variable `$result`, lalu looping melalui result set dan menambahkan data ke dalam array `$data`.
## Membuat File Excel dengan PhpSpreadsheet
Selanjutnya, kita akan menggunakan PhpSpreadsheet untuk membuat file Excel. Berikut adalah contoh kode untuk membuat file Excel sederhana :
“`php
// Load PhpSpreadsheet library
require_once ‘vendor/autoload.php’;
// Buat objek PhpSpreadsheet
$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();
// Set properties dokumen
$spreadsheet->getProperties()->setCreator(‘Nama Anda’)
->setLastModifiedBy(‘Nama Anda’)
->setTitle(‘Judul Document’)
->setSubject(‘Subject Document’)
->setDescription(‘Deskripsi Dokumen’)
->setKeywords(‘excel, data, export’)
->setCategory(‘Data Export’);
// Buat worksheet baru dengan nama “Data Users”
$sheet = $spreadsheet->getActiveSheet();
$sheet->setTitle(‘Data Users’);
// Set heading kolom
$sheet->setCellValue(‘A1’, ‘ID’)
->setCellValue(‘B1’, ‘Nama’)
->setCellValue(‘C1’, ‘Email’);
// Looping data untuk menambahkan data ke dalam worksheet
$row = 2; // Dimulai dari baris ke-2
foreach ($data as $user)
$sheet->setCellValue(‘A’.$row, $user[‘id’])
->setCellValue(‘B’.$row, $user[‘name’])
->setCellValue(‘C’.$row, $user[’email’]);
$row++;
// Auto size kolom
foreach(range(‘A’,’C’) as $columnID)
$sheet->getColumnDimension($columnID)
->setAutoSize(true);
// Ganti header type
header(‘Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet’);
// Save Excel document to file
$objWriter = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
$objWriter->save(‘Data Users.xlsx’);
// Output the file to the browser
readfile(‘Data Users.xlsx’);
“`
Kode di atas menggunakan PhpSpreadsheet untuk membuat file Excel dengan worksheet baru yang diberi nama “Data Users”. Di dalam worksheet tersebut, kita juga sudah menambahkan heading untuk kolom dan data dari tabel “users”. Setiap element data dijadikan sebagai satu baris dalam worksheet dan diorganisir berdasarkan kolom sesuai dengan query yang telah kita buat sebelumnya.
## Menambahkan Pengaturan untuk Dokumen Excel
Selanjutnya, kita dapat menambahkan pengaturan agar file Excel yang dihasilkan menjadi lebih profesional dan mudah dibaca. Salah satu pengaturan yang bisa kita tambahkan adalah tindakan untuk mengatur lebar kolom agar isi teks dapat menyesuaikan dengan lebar kolom.
“`php
// Auto size kolom
foreach(range(‘A’,’C’) as $columnID)
$sheet->getColumnDimension($columnID)
->setAutoSize(true);
// Ganti header type
header(‘Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet’);
// Save Excel document to file
$objWriter = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
$objWriter->save(‘Data Users.xlsx’);
// Output the file to the browser
readfile(‘Data Users.xlsx’);
“`
Dengan menambahkan kode di atas, kita akan melakukan pengaturan untuk mengatur agar isi dari kolom dapat menyesuaikan dengan lebar kolom yang tersedia. Selain itu, kita juga mengubah tipe header sehingga file yang dihasilkan juga bisa dibuka di Excel.
## Menambahkan FAQ
Berikut adalah dua pertanyaan yang sering muncul terkait dengan penggunaan PhpSpreadsheet :
### Q: Apakah PhpSpreadsheet hanya bisa digunakan untuk membuat file Excel?
A: Tidak, PhpSpreadsheet juga bisa digunakan untuk membuka dan membaca file Excel yang sudah ada.
### Q: Apakah PhpSpreadsheet gratis digunakan?
A: Ya, PhpSpreadsheet adalah library open source yang dapat digunakan secara gratis.
## Video Tutorial
Berikut adalah video tutorial untuk membuat ekspor data dari database ke Excel dengan menggunakan PhpSpreadsheet :
“`
https://www.youtube.com/watch?v=10HxrXVWwvY
“`
## Kesimpulan
Dalam tutorial ini, kita telah membahas cara membuat file Excel dengan menggunakan library PhpSpreadsheet. Dari mengambil data dari database dengan PHP, membuat file Excel, hingga menambahkan beberapa pengaturan untuk membuat file tersebut lebih profesional dan mudah dibaca.
Semoga tutorial ini membantu kamu dalam membuat file Excel yang kamu butuhkan. Jangan lupa untuk berbagi jika kamu mempunyai pengalaman lain yang berkaitan dengan PhpSpreadsheet.