Data database dapat diekspor ke berbagai format file seperti CSV, Excel, SQL. Dalam tutorial ini, kita akan membuat contoh PHP untuk mengekspor data database ke file excel. Kita dapat mengekspor hasil database menjadi beberapa file excel. Untuk yang ingin belajar cara mengeksport data database ke file excel, silahkan simak artikel saya ini.
Script di bawah ini merupakan script HTML menampilkan hasil ekspor data dari database. Data dari database akan di tampung menggunakan PHP array yang kemudian bisa ditampilkan secara dinamis. Data di bawah ini merupakan hasil dari database, data table yang saya buat akan mempunyai tombol eksport dalam ke berbagai format seperti CSV, Excel, PDF, dan lainnya.
|
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 |
<div id="table-container"> <table id="tab"> <thead> <tr> <th width="35%">Product Name</th> <th width="20%">Price</th> <th width="25%">Category</th> <th width="20%">Average Rating</th> </tr> </thead> <tbody> <?php $query = $db_handle->runQuery("select * from tbl_products"); if (! empty($productResult)) { foreach ($productResult as $key => $value) { ?> <tr> <td><?php echo $productResult[$key]["name"]; ?></td> <td><?php echo $productResult[$key]["price"]; ?></td> <td><?php echo $productResult[$key]["category"]; ?></td> <td><?php echo $productResult[$key]["average_rating"]; ?></td> </tr> <?php } } ?> </tbody> </table> <div class="btn"> <form action="" method="post"> <button type="submit" id="btnExport" name='export' value="Export to Excel" class="btn btn-info">Export to excel</button> </form> </div> </div> |
Berikut CSS dari tampilan HTML di atas,
|
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 |
<style> body { font-size: 0.95em; font-family: arial; color: #212121; } th { background: #E6E6E6; border-bottom: 1px solid #000000; } #table-container { width: 850px; margin: 50px auto; } table#tab { border-collapse: collapse; width: 100%; } table#tab th, table#tab td { border: 1px solid #E0E0E0; padding: 8px 15px; text-align: left; font-size: 0.95em; } .btn { padding: 8px 4px 8px 1px; } #btnExport { padding: 10px 40px; background: #499a49; border: #499249 1px solid; color: #ffffff; font-size: 0.9em; cursor: pointer; } </style> |
Script PHP untuk Membuat Eksport Data ke Excel
Dalam PHP, kondisi if memeriksa apakah ada action triggered export. Dengan mengklik tombol eksport, parameter action akan diposting ke PHP menggunakan method permintaan POST melalui form HTML. Parameter permintaan ini diperiksa dengan pernyataan kondisional. Jika pernyataan itu mengembalikan nilai benar maka kode PHP untuk mengekspor data akan dieksekusi.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<?php include 'DBController.php'; $db_handle = new DBController(); $productResult = $db_handle->runQuery("select * from tbl_products"); if (isset($_POST["export"])) { $filename = "Export_excel.xls"; header("Content-Type: application/vnd.ms-excel"); header("Content-Disposition: attachment; filename=\"$filename\""); $isPrintHeader = false; if (! empty($productResult)) { foreach ($productResult as $row) { if (! $isPrintHeader) { echo implode("\t", array_keys($row)) . "\n"; $isPrintHeader = true; } echo implode("\t", array_values($row)) . "\n"; } } exit(); } ?> |
DBController.php
DBcontroller kelas PHP digunakan untuk mengkoneksi ke database dan menjalankan queri pemilihan untuk mendapatkan hasil database. Fungsi runQuery () mengambil data database produk dan menyimpannya ke dalam array PHP.
|
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 |
<?php class DBController { private $host = "localhost"; private $user = "root"; private $password = "test"; private $database = "blog_samples"; private $conn; function __construct() { $this->conn = $this->connectDB(); } function connectDB() { $conn = mysqli_connect($this->host,$this->user,$this->password,$this->database); return $conn; } function runQuery($query) { $result = mysqli_query($this->conn,$query); while($row=mysqli_fetch_assoc($result)) { $resultset[] = $row; } if(!empty($resultset)) return $resultset; } } ?> |
Hasil Eksport Database ke excel- Output
Hasil berikut merupakan hasil screenshot dari sebuah export data dari database,
