Pada kesempatan ini, kita akan membahas cara export data dari database ke dalam format Excel menggunakan library PhpSpreadsheet. PhpSpreadsheet merupakan sebuah library yang cukup populer dan sering digunakan oleh para developer PHP dalam mengolah data dengan format Excel. Berikut adalah panduan cara menggunakan PhpSpreadsheet untuk meng-export data dari database ke dalam format Excel.
Pertama-tama, kita perlu meng-install library PhpSpreadsheet menggunakan composer. Buka terminal/command prompt dan jalankan perintah berikut untuk meng-install library tersebut:
“`
composer require phpoffice/phpspreadsheet
“`
Setelah itu, kita perlu membuat sebuah file PHP yang akan berfungsi sebagai controller untuk mengambil data dari database dan men-generate file Excel. Berikut adalah contoh code PHP-nya:
“`php
setActiveSheetIndex(0);
// Set header row
$spreadsheet->getActiveSheet()->setCellValue(‘A1’, ‘ID’);
$spreadsheet->getActiveSheet()->setCellValue(‘B1’, ‘Name’);
$spreadsheet->getActiveSheet()->setCellValue(‘C1’, ‘Email’);
$spreadsheet->getActiveSheet()->setCellValue(‘D1’, ‘Phone’);
// Fetch data from database
$dbHost = “localhost”;
$dbName = “my_database”;
$dbUser = “my_username”;
$dbPass = “my_password”;
$conn = new PDO(“mysql:host=$dbHost;dbname=$dbName”, $dbUser, $dbPass);
$sql = “SELECT * FROM users”;
$stmt = $conn->prepare($sql);
$stmt->execute();
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
// Insert fetched data into the sheet
$row = 2;
foreach($data as $rowVal)
$spreadsheet->getActiveSheet()->setCellValue(‘A’.$row, $rowVal[‘id’]);
$spreadsheet->getActiveSheet()->setCellValue(‘B’.$row, $rowVal[‘name’]);
$spreadsheet->getActiveSheet()->setCellValue(‘C’.$row, $rowVal[’email’]);
$spreadsheet->getActiveSheet()->setCellValue(‘D’.$row, $rowVal[‘phone’]);
$row++;
// Save the file
$writer = new Xlsx($spreadsheet);
$filename = ‘users.xlsx’;
$writer->save($filename);
echo “File berhasil di-generate dengan nama “.$filename;
?>
“`
Pada code di atas, kita menggunakan library PDO untuk mengambil data dari database. Jika Anda menggunakan library database lain seperti mysqli, silahkan sesuaikan code di atas sesuai dengan library database yang Anda gunakan.
Setelah kita membuat file PHP tersebut, selanjutnya kita perlu mengakses file tersebut melalui browser untuk men-generate file Excel. Jika Anda menjalankan aplikasi PHP di localhost, silahkan buka browser dan ketikkan URL http://localhost/nama_folder_file_php_yang_anda_buat.php . Jangan lupa untuk mengganti nama folder dan nama file PHP tersebut sesuai dengan folder dan nama file yang Anda gunakan saat membuat file PHP tadi.
Setelah file Excel berhasil di-generate, selanjutnya kita perlu memastikan format file Excel tersebut sudah sesuai dengan yang kita inginkan. Berikut adalah gambar contoh file Excel yang berhasil di-generate menggunakan PhpSpreadsheet:
Dari contoh di atas, dapat dilihat bahwa file Excel yang di-generate memiliki 4 kolom yaitu ‘ID’, ‘Name’, ‘Email’, dan ‘Phone’. Kolom tersebut merupakan data yang kita ambil dari database. Dalam prakteknya, kita dapat menyusun kolom-kolom tersebut sesuai dengan kebutuhan kita.
Selanjutnya, kita akan membahas penggunaan macro pada aplikasi Excel. Macro pada Excel merupakan sebuah fitur yang memungkinkan kita untuk menjalankan serangkaian perintah atau tindakan secara otomatis dalam satu waktu. Macro pada Excel biasa digunakan untuk mengautomatisasi pekerjaan-pekerjaan yang berulang. Berikut adalah contoh penggunaan macro pada Excel:
Misalnya, kita memiliki sebuah file Excel yang berisi data karyawan. Kita ingin memberikan bonus sebesar 10% pada semua karyawan yang gajinya di bawah 5 juta. Kita dapat membuat macro pada Excel untuk melakukan hal tersebut. Berikut adalah langkah-langkahnya:
1. Buka file Excel yang berisi data karyawan tersebut.
2. Pilih satu sel pada kolom di sebelah kiri baris pertama. Misalnya, kita pilih sel B2.
3. Klik pada tab ‘Developer’ yang ada pada ribbon (jika tab Developer tidak muncul, klik kanan pada ribbon dan pilih Customize Ribbon. Kemudian, centang pada opsi Developer dan klik OK).
4. Pada tab Developer, klik tombol ‘Record Macro’.
5. Beri nama pada macro-nya, misalnya ‘bonus_karyawan’.
6. Pilih tombol ‘Keyboard’ untuk memberikan shortcut pada macro (opsional).
7. Lakukan perubahan pada data karyawan. Misalnya, kita ingin memberikan bonus 10% dengan rumus A2*1,1 pada semua karyawan yang gajinya di bawah 5 juta. Kita bisa melakukan filter pada kolom gaji dan hanya menampilkan karyawan dengan gaji di bawah 5 juta. Kemudian, kita pilih sel pada kolom bonus (misalnya kolom E) dan ketikkan rumus A2*1,1. Setelah itu, drag sel tersebut ke bawah hingga baris terakhir karyawan yang memiliki gaji di bawah 5 juta.
8. Kembali ke tab Developer dan klik tombol ‘Stop Recording’.
9. Macro sudah dibuat.
10. Kita bisa menjalankan macro tersebut dengan cara memilih satu sel di kolom bonus dan menekan shortcut (jika diberikan shortcut) atau dengan mengklik tombol ‘Macros’ pada tab Developer dan memilih macro yang ingin dijalankan.
Dari contoh di atas, dapat dilihat betapa mudahnya penggunaan macro pada aplikasi Excel untuk mengautomatisasi pekerjaan-pekerjaan yang berulang.
FAQ:
1. Apakah PhpSpreadsheet mendukung format file Excel yang lain selain .xlsx?
Jawaban: Ya, PhpSpreadsheet mendukung format file Excel lain seperti .xls, .xlsm, .ods, dan lain-lain. Untuk meng-generate file Excel dengan format yang berbeda, kita hanya perlu mengganti jenis writer yang digunakan pada code PHP. Misalnya, jika ingin meng-generate file Excel dengan format .xls, kita harus menggunakan writer Xls pada PhpSpreadsheet.
2. Apakah kita bisa menggunakan macro pada file Excel yang sudah di-generate menggunakan PhpSpreadsheet?
Jawaban: Ya, kita bisa menggunakan macro pada file Excel yang sudah di-generate menggunakan PhpSpreadsheet. Kita hanya perlu membuka file Excel tersebut dan menambahkan macro seperti biasa pada aplikasi Excel. Namun, perlu diperhatikan bahwa penggunaan macro pada file Excel tersebut tidak akan mempengaruhi code PHP yang digunakan untuk meng-generate file Excel tersebut.