Export Data ke Excel Dengan PHP dan MySQLi

Export data ke excel dengan PHP dalah salah satu model yang biasanya digunakan dalam membuat laporan berdasarkan referensi data dari MySQL. Export data ke excel yang kita pelajari ini akan menggunakan library/plugin pendukung PhpSpreadsheet yang disediakan secara gratis.
PhpSpreadsheet merupakan plugin yang dikembangkan dimana pengembangannya menggunakan PHP native. PhpSpreadsheet ini menawarkan kemudahan yang memungkin kita membaca, menulis beberbagai format seperti excel dan word.
Melengkapi pembahasan sebelumnya dengan judul “Export Data Ke Excel Dari Database“, yang mana pada materi sebelumnya berhasil dikerjakan hanya saja file yang dihasilkan hanya bisa dibuka di excel 2007 kebawah. Dan dengan menggunakan plugin PhpSpreadsheet maka file yang dihasilkan dalam pembuatan laporan sudah support dengan excel 2013 keatas.
Export Data ke Excel Dengan PHP dan MySQLi
Langsung saja kita siapkan keperluan yang dibutuhkan dalam membuat contoh kasus export data ke excel menggunakan Php dan MySQLi dengan bantuan plugin PhpSpreadsheet.
Instal PhpSpreadsheet dalam project
Dalam proses instalasi spreadsheet Kita memerlukan bantuan composer. Pastikan terlebih dahulu composes sudah di install di pc yang digunakan. Bagi kamu yang belum tau cara untuk instalasi composer bisa mengikuti materi berikut ini : composer
- Buka CMD/Command Promp dan pastikan Anda sudah berada di dalam folder projetct
- Ketikkan perintah berikut :
composer require phpoffice/phpspreadsheet
ataucomposer require phpoffice/phpspreadsheet --prefer-source
. fungsi dari perintah ini untuk mendownload library phpspreadsheet. Perbedaan keduanya adalah yang pertama tidak menyertakan dokumentasi sedangkan yang kedua disertakan dokumentasi. - Tunggu sampai tahapan kedua selesai, selanjutnya buka folder projek dan cek apakah folder
phpoffice
sudah ada. Jika ada maka instalasi library phpspreadsheet sukses.
Persiapan Database yang Digunakan
Dalama pengimplementasian print laporan excel menggunakan php ini Kita akan membuat database dengan tabel tbl_karyawan. Untuk struktur tabel bisa dilihat di gambar berikut :

Mempersiakan Koneksi PHP dengan Database
Langkah selanjutnya Kita harus mempersiapkan koneksi antara PHP dengan database MySQL. disini kita akan membuat satu file dengan ekstensi php (disini saya menggunakan nama koneksi.php)
1 2 3 4 |
<?php //$koneksi = mysqli_connect("hostname","username","password","nama_database"); $koneksi = mysqli_connect("localhost","root","","tutorial_malasngoding"); ?> |
Menampilkan Data Karyawan yang ada
Selanjutnya Kita akan menampilkan data karyawan, disini Kami tidak menjelaskan secara detail bagaimana menampilkan data menggunakan PHP. Anda bisa membacanya di artikel sebelumnya yang pernah dibahas dengan judul Menampilkan data php mysqli.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
<?php include 'koneksi.php' ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Export Data ke Excel Dengan PHP dan MySQLi</title> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/css/bootstrap.min.css"> </head> <body> <div class="container"> <center><h2>Export Data ke Excel Dengan PHP dan MySQLi</h2></center> <br> <div class="float-right"> <a href="karyawan_excel.php" target="_blank" class="btn btn-success"><i class="fa fa-file-excel-o"></i>   Excel</a> <br> <br> </div> <table class="table table-bordered"> <thead> <tr> <th style="text-align: center;">Nomor</th> <th style="text-align: center;">Nama</th> <th style="text-align: center;">Alamat</th> <th style="text-align: center;">Kelamin</th> <th style="text-align: center;">Email</th> <th style="text-align: center;">Kontak</th> </tr> </thead> <tbody> <?php $no=1; $data = mysqli_query($koneksi,"SELECT * FROM tbl_karyawan"); while($d = mysqli_fetch_array($data)){ ?> <tr> <td><?php echo $no++; ?></td> <td><?php echo $d['karyawan_nama'] ?></td> <td><?php echo $d['karyawan_alamat'] ?></td> <td><?php echo $d['karyawan_kelamin'] ?></td> <td><?php echo $d['karyawan_email'] ?></td> <td><?php echo $d['karyawan_kontak'] ?></td> </tr> <?php } ?> </tbody> </table> </div> </body> </html> |
Hasil yang ditampilkan dari potongan code diatas adalah sebagai berikut :

Print Data ke Excel
Tahapan terakhir yaitu membuat print out atau export data karyawan kedalam file excel. Seperti yang sudah kita bahas sebelumnya tujuan dari pembentukan kedalam file excel ini sebagai keperluan pembuatan laporan.
Untuk membuat export data ke excel dengan PHP dan MySQLi secara sederhana bisa Anda dilihat di potongan berikut ini :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
<?php include('koneksi.php'); require 'vendor/autoload.php'; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); $sheet->setCellValue('A1', 'No'); $sheet->setCellValue('B1', 'NAMA LENGKAP'); $sheet->setCellValue('C1', 'ALAMAT'); $sheet->setCellValue('D1', 'JENIS KELAMIN'); $sheet->setCellValue('E1', 'EMAIL'); $sheet->setCellValue('F1', 'KONTAK'); $data = mysqli_query($koneksi,"select * from tbl_karyawan"); $i = 2; $no = 1; while($d = mysqli_fetch_array($data)) { $sheet->setCellValue('A'.$i, $no++); $sheet->setCellValue('B'.$i, $d['karyawan_nama']); $sheet->setCellValue('C'.$i, $d['karyawan_alamat']); $sheet->setCellValue('D'.$i, $d['karyawan_kelamin']); $sheet->setCellValue('E'.$i, $d['karyawan_email']); $sheet->setCellValue('F'.$i, $d['karyawan_kontak']); $i++; } $writer = new Xlsx($spreadsheet); $writer->save('Data karyawan.xlsx'); echo "<script>window.location = 'Data karyawan.xlsx'</script>"; ?> |
Berikut saya jelaskan secara singkat dari potongan code diatas :
1 2 |
include('koneksi.php'); require 'vendor/autoload.php'; |
Syntax include
maupun require
berfungsi untuk menyisipan file yang diperlukan, disini Kita memerlukan file koneksi dan autoload yang mepurakan library PhpSpreadsheet.
1 2 |
use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; |
Syntax use disini berungsi untuk untuk memanggil fungsi Spreadsheed yang akan kita gunakan, misalnya dalam kasus ini Kita akan menggunakan excel atau Xlsx.
1 2 |
$spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); |
Potongan kode ini merupakan inisialisasi kelas yang ada dalam library. Salah satun fungsi kelas ini adalah untuk kolom dari baris yang ada pada sheet tertentu.
1 2 3 4 5 6 |
$sheet->setCellValue('A1', 'No'); $sheet->setCellValue('B1', 'NAMA LENGKAP'); $sheet->setCellValue('C1', 'ALAMAT'); $sheet->setCellValue('D1', 'JENIS KELAMIN'); $sheet->setCellValue('E1', 'EMAIL'); $sheet->setCellValue('F1', 'KONTAK'); |
Potongan kode ini digunakan untuk membuat kolom-kolom yang ada tabel excel nantinya. Dimana disini ada 6 kolom yang terlibat.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$data = mysqli_query($koneksi,"select * from tbl_karyawan"); $i = 2; $no = 1; while($d = mysqli_fetch_array($data)) { $sheet->setCellValue('A'.$i, $no++); $sheet->setCellValue('B'.$i, $d['karyawan_nama']); $sheet->setCellValue('C'.$i, $d['karyawan_alamat']); $sheet->setCellValue('D'.$i, $d['karyawan_kelamin']); $sheet->setCellValue('E'.$i, $d['karyawan_email']); $sheet->setCellValue('F'.$i, $d['karyawan_kontak']); $i++; } |
Menampilkan data karyawan yang ada pada tabel kedalam baris yang sesuai dengan kolom yang sudah di buat sebelumnya. Inisialisasi $i=2
ini maksudnya adalah kita akan menampilkan data mulai dari baris ke 2.
Hasil Export Data ke Excel dengan PHP
Dari hasil kodingan yang sudah kita buat sebelumnya dapat dihasilkan file excel yang berisikan data karyawan. Untuk hasilnya bisa di lihat gambar berikut :

Baik sekian dulu untuk materi membuat export data ke excel menggunakan PHP dan MySQLi. Untuk merapikan data, memberi warna pada kolum akan kita bahas di materi selanjutnya.
TerimaKasih.
Tutorial Menarik Lainnya

Membuat Form Login Dengan PHP Tanpa Database


Menghitung Selisih Waktu Dengan PHP


Membuat CRUD menggunakan Ajax PHP – Hapus Data

