Cara Ekspor Data MySQL ke Excel Menggunakan PHP


Cara Ekspor Data MySQL ke Excel Menggunakan  PHP
Cara Ekspor Data MySQL ke Excel Menggunakan  PHP. Sumber : blog root93


Pada phpMyAdmin sebenarnya kita bisa membackup data dengan mudah kedalam format excel (CSV), namun tentu saja akan jauh lebih mudah jika kita menyediakan fasilitas ekspor tersebut secara langsung pada aplikasi PHP yang kita bangun, sehingga pengguna bisa dengan mudah untuk melakukan ekspor data dari aplikasi php tanpa harus perlu membuka phpMyAdmin.

Ekspor Database MySQL ke Excel menggunakan PHP adalah merupakan salah satu contoh keperluan akan data atau backup data dalam bentuk file lain, sehingga data yang telah terekspor tersebut bisa digunakan, diatur kembali atau disimpan untuk kebutuhan tertentu.

Baca juga :  Cara Impor Excel ke MySQL Menggunakan PHP

Menyiapkan Database

Dalam proses export data mysql ke excel menggunakan php ini saya akan mencontohkan bagaimana melakukan backup sebuah data pada sebuah tabel didalam database MySQL. Nanti Anda bisa buat sebuah database baru dengan sebuah tabel yang didalamnya sudah memiliki data. Anda bisa membuat sebuah tabel dengan data sederhana atau bisa jalankan query berikut 

CREATE TABLE `tbl_info` (
  `id` int(11) NOT NULL,
  `name` varchar(50) NOT NULL,
  `description` varchar(50) NOT NULL,
  `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data untuk tabel `tbl_info`
--

INSERT INTO `tbl_info` (`id`, `name`, `description`, `date`) VALUES
(1, 'Wina Faujiah', 'Mahasiswi Kedokteran', '2019-07-03 13:05:47'),
(2, 'Sena Duta', 'Mahasiswa Hukum', '2019-07-03 13:05:47'),
(3, 'Ridwan Utara', 'Mahasiswa Pertanian', '2019-07-03 13:05:47'),
(4, 'Dini Andini', 'Mahasiswi Sastra Bahasa', '2019-07-03 13:05:47'),
(5, 'Kania', 'Mahisiswi Teknik Sipil', '2019-07-03 13:05:47');

--
-- Indexes for dumped tables
--

--
-- Indexes for table `tbl_info`
--
ALTER TABLE `tbl_info`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `tbl_info`
--
ALTER TABLE `tbl_info`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;

Ekspor Database MySQL ke Excel

Sebelum mencoba mempratikannya, nanti Anda download terlebih dahulu PHPExcel, simpan phpexcel tersebut pada folder projek masing – masing . Selanjutnya Anda bisa meniru contoh menyusun kodenya seperti berikut :
<?php
//definisikan koneksi database
 $koneksi=mysqli_connect("localhost","root","","test_import");
 //arahkan ke plugins php excel
 include('phpexcel/Classes/PHPExcel.php');
 //jalankan query, query bisa saja kompleks dengan parameter where atau ada iner join didalammnya tergantung kebutuhan
 $sql = "SELECT id, name, description  FROM tbl_info ";
 $perintah=mysqli_query($koneksi, $sql);
$objPHPExcel = new PHPExcel();
$objPHPExcel->getProperties()->setCreator("ROOT93")
                                          ->setLastModifiedBy("PPDB")
                                          ->setTitle("DATA JUDUL")
                                          ->setSubject("SUBJEK")
                                          ->setDescription("DESKRIPSI")
                                          ->setKeywords("PHPExcel php")
                                          ->setCategory("General");
// mulai dari baris ke 2
$row = 2;
 
// Mendefinisikan Judul Kolom
$objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A'.$row, 'ID')
            ->setCellValue('B'.$row, 'NAME')
            ->setCellValue('C'.$row, 'DESCRIPTION');
   ;
            
          


$row++; // Selanjautnya set nilainya masing - masing
while( $data = mysqli_fetch_array($perintah)){
      $objPHPExcel->setActiveSheetIndex(0)
            ->setCellValue('A'.$row, $data['id'])
            ->setCellValue('B'.$row, $data['name'])
            ->setCellValue('C'.$row, $data['description']); 
            
            
     $row++; // pindah ke row bawahnya ($row + 1)
      
}

$objPHPExcel->getActiveSheet()->setTitle('BACKUP DATA SISWA PPDB');
$objPHPExcel->setActiveSheetIndex(0);
 
 
// Download (Excel2007)
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="JUDUL FILE.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
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); 
ob_end_clean(); 
$objWriter->save('php://output');
exit;
 
?>

Simpan file tersebut misal dengan nama ekspor.php. Ketika Anda mengakses file ekspor.php maka dengan secara otomatis akan muncul sebuah file excel yang perlu Anda simpan

[ DOWNLOAD SCRIPT ]

Cara Kedua Ekspor Database Mysql ke Excel Dengan PHP Tanpa Plugins

Cara kedua adalah eksport database mysql ke excel dengan php namun tanpa menggunakan plugins php excel. Cara ini terbilang lebih mudah dan gampang. Sederhananya nanti kalian bisa melakukan koneksi database, menjalankan session didalam file php yang bertugas untuk melakukan backup.

Jadi hanya tinggal melakukan query seperti biasa, selanjutnya didalam file Anda perlu mendefiniskan bahwa file tersebut akan di set ke dalam konten tipe excel. Anda bisa menggunakan parameter seperti berikut ini :

header("Content-type: application/vnd-ms-excel");
header("Content-Disposition: attachment; filename=Siswa.xls");

Contoh lengkapnya :
Contoh 1

<?php

//parameter koneksi
$host="localhost";
$user="root";
$pass="";
$db="db_eksport";
$koneksi=mysqli_connect($host, $user, $pass, $db);
if($koneksi==false):
      die("Gagal melakukan koneksi".mysqli_connect_error());
endif;

?>
<html>
<head>
      <title>Export Database MySQL ke Excel Menggunakan PHP - ROO93</title>
</head>
<body>
<?php
header("Content-type: application/vnd-ms-excel");
header("Content-Disposition: attachment; filename=Siswa.xls");
?>
<table border="1">
             <tr>
                  <th>No</th>
                  <th>NISN</th>
                  <th>Nama</th>
                 
            </tr>           
          
            <?php 
            $sql="SELECT * FROM ekspor_database";
            $perintah=mysqli_query($koneksi,$sql);           
            if(mysqli_num_rows($perintah)>0){
                  while($data=mysqli_fetch_array($perintah)){
            ?>
      
      <tr>
            <td><?php echo $data['id']; ?></td>
            <td><?php echo $data['nisn'];?></td>
             <td><?php echo $data['nama'];?></td>
            
      </tr>
            <?php      
            }

            }else{
                die("Belum ada data");
            }

          

            ?>
</table>
</body>
</html>

Dalam percobaan localhost ini berhasil dan berfungsi dengan baik, namun jika contoh file diatas tidak menghasilkan output excel melainkan ditampilkan dalam web page html biasa, maka Anda perlu menaruh parameter header, sebelum file koneksi ke database. Lihat contoh berikut  :

Contoh 2

<?php
header("Content-type: application/vnd-ms-excel");
header("Content-Disposition: attachment; filename=Siswa.xls");
//parameter koneksi
$host="localhost";
$user="root";
$pass="";
$db="db_eksport";
$koneksi=mysqli_connect($host, $user, $pass, $db);
if($koneksi==false):
      die("Gagal melakukan koneksi".mysqli_connect_error());
endif;

?>
<html>
<head>
      <title>Export Database MySQL ke Excel Menggunakan PHP - ROO93</title>
</head>
<body>

<table border="1">
             <tr>
                  <th>No</th>
                  <th>NISN</th>
                  <th>Nama</th>
                 
            </tr>           
          
            <?php 
            $sql="SELECT * FROM ekspor_database";
            $perintah=mysqli_query($koneksi,$sql);           
            if(mysqli_num_rows($perintah)>0){
                  while($data=mysqli_fetch_array($perintah)){
            ?>
      
      <tr>
            <td><?php echo $data['id']; ?></td>
            <td><?php echo $data['nisn'];?></td>
             <td><?php echo $data['nama'];?></td>
            
      </tr>
            <?php      
            }

            }else{
                die("Belum ada data");
            }

          

            ?>
</table>
</body>
</html>


0 Response to "Cara Ekspor Data MySQL ke Excel Menggunakan PHP"

Post a Comment

Komentar yang Anda kirim akan terlebih dahulu di moderasi oleh Admin