Hai ketemu lagi dengan saya dewan komputer dan postingan ini merupakan lanjutan dari postingan saya sebelumnya yang berjudul Cara Ekspor Data/Laporan ke Excel Dengan Mudah Menggunakan HTML Tanpa Plugin dari Database MySQL. Pada postingan sebelumnya merupakan versi sederhana dan mudahnya karena memang itu bukanlah excel yang sepenuhnya. Dan pada postingan kali ini saya akan menjelaskan tentang generate data ke dalam excel yang mengambil data dari database MySQL menggunakan bahasa pemrograman PHP. Karena menggunakan library/plugin sehingga pada postingan kali ini merupakan excel yang sempurna dan format file yang dihasilnya adalah excel 2007 ke atas atau (.xlsx). Seperti yang sobat tahu segala aplikasi pasti nantinya akan mengeluarkan sebuah output dan biasanya adalah dalam bentuk excel, pdf atau bahkan word. Jika sobat ingin tutorial lainnya sobat bisa kunjungi :
Baca juga :
Cara Ekspor Data/Laporan ke Excel Dengan Mudah Menggunakan HTML Tanpa Plugin dari Database MySQL
Cara Ekspor Data/Laporan ke PDF Dengan Mudah Menggunakan Mpdf pada PHP
Cara Ekspor Laporan/Data dari Database MySQL ke dalam Word Tanpa Plugin
Plugin yang saya gunakan yaitu PHPOffice terbaru saat artikel ini dibuat. Jadi sangat mungkin nantinya akan muncul versi-versi barunya. PHPOffice sendiri terbagi menjadi beberapa versi dan yang paling sering digunakan khusunya oleh saya yaitu PHPSpreadsheet, PHPWord dan PHPPresentation. Dan menurut pengalaman saya pada saat membuat aplikasi untuk sebuah perusahaan besar yang sebelumnya menggunakan PHPExcel namun karena masalah security akhirnya diharusnya untuk mengubahkan ke versi yang paling baru dan itulah PHPOffice. Oleh karena itu pada tutorial kali ini saya menggunakan PHPOffice Spreeadsheet bukan PHPExcel walaupun sebenarnya dari penulisan script mirip-mirip namun ada beberapa fungsi baru dan beberapa fungsi yang deprecated.
Cara Ekspor Laporan/Data dari Database MySQL ke dalam Excel
Tidak usah berlama-lama langsung saja saya jelaskan caranya yaitu :
1. Pertama sobat buat database dengan cara masuk ke localhost/phpmyadmin pada browser sobat dan klik tab Database/Basis Data lalu masukkan nama database db_dewankomputer seperti gambar dibawah
2. Selanjutnya sobat buat tabel dan beri nama tbl_mahasiswa atau sobat bisa lik tab SQL dan masukkan query dibawah ini
CREATE TABLE `tbl_mahasiswa` ( `id` int(11) NOT NULL, `nama_mahasiswa` varchar(255) NOT NULL, `alamat` text NOT NULL, `jenis_kelamin` varchar(255) NOT NULL, `tgl_masuk` date NOT NULL )
3. Setelah sobat sudah berhasil membuat tabel selanjutnya sobat isikan tabel tersebut atau sobat bisa klik lagi tab SQL dan masukkan query dibawah ini dan klik tombol OK/Go
INSERT INTO `tbl_mahasiswa` (`id`, `nama_mahasiswa`, `alamat`, `jenis_kelamin`, `tgl_masuk`) VALUES (1, 'Dewan Komputer', 'Cilacap', 'Laki-laki', '2019-01-01'), (2, 'Sule', 'Jakarta', 'Laki-laki', '2019-01-01'), (3, 'Maemunah', 'Yogyakarta', 'Perempuan', '2019-01-01'), (4, 'Siti', 'Semarang', 'Perempuan', '2019-01-01'), (5, 'Andre', 'Purwokerto', 'Laki-laki', '2019-01-01'), (6, 'Tukul Arwana', 'Surabaya', 'Laki-laki', '2019-01-01');
4. Download versi yang sama seperti pada tutorial ini disini atau sobat bisa download dengan composer caranya pada step 5. Selanjutnya sobat bisa buat folder di folder C://xampp/htdocs/ dan beri nama dewan_ekspor_excel2 lalu buat file di dalamnya dan beri nama index.php, koneksi.php dan ekspor.php dan nantinya akan menghasilkan tampilan seperti dibawah
5. Untuk mendownload phpspreadsheet sobat bisa buka cmd dan ketikkan seperti dibawah namun tentunya sobat sudah menginstal composer terlebihi dahulu. Jika sobat belum menginstal Composer maka sobat bisa lihat Cara Menginstal Composer pada Windows.
5.
Kemudian ketikkan koneksi.php dengan kode dibawah ini yang berfungsi untuk mengkoneksikan dengan database MySQL<?php error_reporting(0); //MySQLi Object-Oriented define('HOST','localhost'); define('USER','root'); define('PASS',''); define('DB1', 'db_dewankomputer'); // Buat Koneksinya $db1 = new mysqli(HOST, USER, PASS, DB1); ?>
6. Lalu buka file index.php dan isikan dengan script dibawah ini yang berfungsi untuk memanggil file yang akan didownload tadi
<?php //Menggabungkan dengan file koneksi yang telah kita buat include 'koneksi.php'; ?> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <title>Ekspor Data Excel - www.dewankomputer.com</title> <style type="text/css"> table { font-size: 17px; } thead { font-weight: bold; background-color: blue; color: white; } td { padding: 10px; } hr { margin-top: 20px; margin-bottom: 20px; } .download { background-color: green; color: #fff; border-radius: 10px; padding: 10px 20px 10px 20px; margin-bottom: 10px; } </style> </head> <body> <div align="center"> <h2>Cara Ekspor Laporan/Data dari Database MySQL ke dalam Excel (.xlsx) dengan plugin PHPOffice pada PHP</h2> <a href="ekspor.php"> <button class="download">Download</button> </a> <table border="1"> <thead> <tr> <td>No</td> <td>Nama Mahasiswa</td> <td>Alamat</td> <td>Jenis Kelamin</td> <td>Tanggal Masuk</td> </tr> </thead> <tbody> <?php $no = 1; $query = "SELECT * FROM tbl_mahasiswa ORDER BY nama_mahasiswa ASC"; $dewan1 = $db1->prepare($query); $dewan1->execute(); $res1 = $dewan1->get_result(); if ($res1->num_rows > 0) { while ($row = $res1->fetch_assoc()) { $nama_mahasiswa = $row['nama_mahasiswa']; $alamat = $row['alamat']; $jenis_kelamin = $row['jenis_kelamin']; $tgl_masuk = $row['tgl_masuk']; echo "<tr>"; echo "<td>".$no++."</td>"; echo "<td>".$nama_mahasiswa."</td>"; echo "<td>".$alamat."</td>"; echo "<td>".$jenis_kelamin."</td>"; echo "<td>".$tgl_masuk."</td>"; echo "</tr>"; } } else { echo "<tr>"; echo "<td colspan='5'>Tidak ada data ditemukan</td>"; echo "</tr>"; } ?> </tbody> </table> </div><hr> </body> </html>
7. Lalu isikan file ekspor.php dengan kode dibawah ini untuk membuat file excel dan mengambil datanya dari database
<?php //Menggabungkan dengan file koneksi yang telah kita buat include 'koneksi.php'; // Load library phpspreadsheet require('vendor/autoload.php'); use PhpOffice\PhpSpreadsheet\Helper\Sample; use PhpOffice\PhpSpreadsheet\IOFactory; use PhpOffice\PhpSpreadsheet\Spreadsheet; // End load library phpspreadsheet $spreadsheet = new Spreadsheet(); // Set document properties $spreadsheet->getProperties()->setCreator('Dewan Komputer') ->setLastModifiedBy('Dewan Komputer') ->setTitle('Office 2007 XLSX Dewan Komputer') ->setSubject('Office 2007 XLSX Dewan Komputer') ->setDescription('Test document for Office 2007 XLSX Dewan Komputer.') ->setKeywords('office 2007 openxml php Dewan Komputer') ->setCategory('Test result file Dewan Komputer'); $spreadsheet->getActiveSheet()->mergeCells('A1:G1'); $spreadsheet->setActiveSheetIndex(0)->setCellValue('A1', 'Cara Ekspor Laporan/Data dari Database MySQL ke dalam Excel (.xlsx) dengan plugin PHPOffice pada PHP'); //Font Color $spreadsheet->getActiveSheet()->getStyle('A3:E3') ->getFont()->getColor()->setARGB(\PhpOffice\PhpSpreadsheet\Style\Color::COLOR_WHITE); // Background color $spreadsheet->getActiveSheet()->getStyle('A3:E3')->getFill() ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID) ->getStartColor()->setARGB('FFFF0000'); // Header Tabel $spreadsheet->setActiveSheetIndex(0) ->setCellValue('A3', 'NO') ->setCellValue('B3', 'NAMA MAHASISWA') ->setCellValue('C3', 'ALAMAT') ->setCellValue('D3', 'JENIS KELAMIN') ->setCellValue('E3', 'TANGGAL MASUK') ; $i=4; $no=1; $query = "SELECT * FROM tbl_mahasiswa ORDER BY nama_mahasiswa ASC"; $dewan1 = $db1->prepare($query); $dewan1->execute(); $res1 = $dewan1->get_result(); while ($row = $res1->fetch_assoc()) { $spreadsheet->setActiveSheetIndex(0) ->setCellValue('A'.$i, $no) ->setCellValue('B'.$i, $row['nama_mahasiswa']) ->setCellValue('C'.$i, $row['alamat']) ->setCellValue('D'.$i, $row['jenis_kelamin']) ->setCellValue('E'.$i, $row['tgl_masuk']); $i++; $no++; } // Rename worksheet $spreadsheet->getActiveSheet()->setTitle('Report Excel '.date('d-m-Y H')); // Set active sheet index to the first sheet, so Excel opens this as the first sheet $spreadsheet->setActiveSheetIndex(0); // Redirect output to a client’s web browser (Xlsx) header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="Report Excel.xlsx"'); header('Cache-Control: max-age=0'); // If you're serving to IE 9, then the following may be needed header('Cache-Control: max-age=1'); // If you're serving to IE over SSL, then the following may be needed header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modified header('Cache-Control: cache, must-revalidate'); // HTTP/1.1 header('Pragma: public'); // HTTP/1.0 $writer = IOFactory::createWriter($spreadsheet, 'Xlsx'); $writer->save('php://output'); ?>
8. Jalankan http://localhost/dewan_ekspor_excel2 dan akan menghasilkan tampilan seperti dibawah
9. Setelah sobat klik download maka akan secara otomatis browser mendownload file excel dan jika dibuka akan menghasilkan tampilan seperti dibawah
Masih banyak fungsi dari PHPOffice yang bisa sobat gunakan. Sobat bisa lihat pada postingan saya selanjutnya. Sekian postingan saya tentang Cara Ekspor Laporan/Data dari Database MySQL ke dalam Excel (.xlsx) dengan plugin PHPOffice pada PHP jika ada salah saya mohon maaf dan jika ada pertanyaan silahkan tinggalkan pada kolom komentar dibawah.
Jika sobat ingin mendownload tutorial diatas maka sobat bisa klik link dibawah ini :
Sampai jumpa pada postingan saya selanjutnya..
maaf mas, file ekspor.php nya yang mana ya?
wah iya ketinggalan,
sudah saya tambah di postingan.