-->

export data ke excel dari MySQL dengan phpspreadsheet di PHP


Export data ke excel dari MySQL dengan phpspreadsheet di PHP

export data ke excel dari MySQL dengan phpspreadsheet di PHP, tentunya anda sudah mengetahui bahwa mulai versi PHP 7.0 PHPOffice / PHP Excel sudah tidak bisa digunakan lagi untuk pengembangan aplikasi (deprecated)  dan kemudian digantikan dengan PHPspreadsheet yang powerful dan free, PHPspreadsheet ini sudah bisa baca dan tulis data baik berformat .xls .xlsx ataupun .csv (comma separated value)

Export data ke excel sangat diperlukan pada aplikasi web yang sedang anda buat, tujuannya adalah memudahkan user untuk export data untuk keperluan lainya, selain itu export data ke excel juga bisa menjadi pilihan backup untuk menjaga dari hilangnya data.

Kali ini saya akan memberikan tutorial singkat untuk export data ke excel dari MySQL dengan phpspreadsheet di PHP, bagaimana caranya? yuk simak tutorial berikut ini.

  • Langkah pertama yang harus dilakukan adalah buatlah sebuah database dengan nama "mahasiswa" atau anda bisa dumping sql di bawah ini.

-- phpMyAdmin SQL Dump
-- version 4.8.0
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Waktu pembuatan: 23 Sep 2019 pada 09.03
-- Versi server: 10.1.31-MariaDB
-- Versi PHP: 7.1.16

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET AUTOCOMMIT = 0;
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `mahasiswa`
--

-- --------------------------------------------------------

--
-- Struktur dari tabel `mahasiswa`
--

CREATE TABLE `mahasiswa` (
  `id` int(10) NOT NULL,
  `nim` varchar(5) NOT NULL,
  `nama` varchar(40) NOT NULL,
  `ipk` double NOT NULL,
  `jurusan` varchar(40) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Dumping data untuk tabel `mahasiswa`
--

INSERT INTO `mahasiswa` (`id`, `nim`, `nama`, `ipk`, `jurusan`) VALUES
(1, 'M0002', 'Hakko Bio Richard', 3, 'Manajemen Informatika'),
(2, 'M0003', 'Dede Rizki Ramadhan', 2.8, 'Manajemen Informatika'),
(3, 'M0004', 'Anton Sugianto', 3.2, 'Teknik Informatika'),
(4, 'M0005', 'Ujang Walim', 3.1, 'Sistem Informasi'),
(5, 'M0016', 'Dony', 3, 'Teknik Industri'),
(6, 'M0100', 'Dimas', 3.1, 'Psikologi'),
(7, 'M0016', 'Dion', 3, 'Teknik Industri'),
(8, 'M0016', 'Mayang', 3, 'Teknik Industri'),
(9, 'M0016', 'Susi', 3, 'Teknik Industri'),
(10, 'M0016', 'Niqo', 3, 'Teknik Industri'),
(11, 'M0016', 'Esbeye', 3, 'Teknik Industri'),
(12, 'M0016', 'Joko', 3, 'Teknik Industri'),
(13, 'M0016', 'Jaka', 3, 'Teknik Industri'),
(14, 'M0016', 'Wira', 3, 'Teknik Industri'),
(15, 'M0016', 'Maradona', 3, 'Teknik Industri'),
(16, 'M0016', 'Ujang', 3, 'Teknik Industri'),
(17, 'M0016', 'Sugiarto', 3, 'Teknik Industri'),
(18, 'M0016', 'Karman', 3, 'Teknik Industri'),
(19, 'M0016', 'Anto', 3, 'Teknik Industri'),
(20, 'M0016', 'Rosada', 3, 'Teknik Industri'),
(21, 'M0016', 'Bima', 3, 'Teknik Industri'),
(22, 'M0016', 'Lusi', 3, 'Teknik Industri'),
(23, 'M0016', 'Ipul', 3, 'Teknik Industri'),
(24, 'M0016', 'Erik', 3, 'Teknik Industri'),
(25, 'M0016', 'Siffa', 3, 'Teknik Industri'),
(26, 'M0016', 'Sebastian', 3, 'Teknik Industri'),
(27, 'M0016', 'George', 3, 'Teknik Industri'),
(28, 'M0016', 'Richard', 3, 'Teknik Industri'),
(29, 'M0016', 'Dony', 3, 'Teknik Industri');

--
-- Indexes for dumped tables
--

--
-- Indeks untuk tabel `mahasiswa`
--
ALTER TABLE `mahasiswa`
  ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT untuk tabel yang dibuang
--

--
-- AUTO_INCREMENT untuk tabel `mahasiswa`
--
ALTER TABLE `mahasiswa`
  MODIFY `id` int(10) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=30;
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;


  • Setelah membuat database langkah selanjutnya mendownload library phpspreadsheet di sini https://github.com/PHPOffice/PhpSpreadsheet
  • Setelah download buatlah sebuat folder di C:/xampp/htdocs/ dengan nama "reportexcel" (tanpa tanda petik)
  • Extrak library phpspreadsheet di c:/xampp/htdocs/reportexcel
  • langkah selanjutnya membuat file koneksi.php, silahkan ada copy dan pastekan kode di bawah ini kemudian simpan dengan nama koneksi.php ke direktory c:/xampp/htdocs/reportexcel/koneksi.php

<?php 
$host       = "localhost";
$user       = "root";
$password   = "";
$database   = "mahasiswa";
$koneksi    = mysqli_connect($host, $user, $password, $database);
?>


  • Selanjutnya membuat file untuk view data, silahkan copy dan pastekan kode di bawah ini kemudian simpan dengan nama index.php ke direktory c:/xampp/htdocs/reportexcel/index.php
 <html>
 <head>
 <title>Export Data Excel dengan phpspreadsheet| www.hakkoblogs.com</title>
 </head>
 <!--
 File : export data ke excel dengan phpspreadsheet
 Author : Hakko Bio Richard
 Blog : www.hakkoblogs.com
     -->
 <?php
                    include "koneksi.php";
                    $query1="select * from mahasiswa";
                    $tampil=mysqli_query($koneksi, $query1) or die(mysqli_error());
                    ?>
                    <a href="reportdataexcel.php" style="background:yellow; color:green; border:1px;">EXPORT KE EXCEL</a>
                  <table border="1">
                  <thead>
                      <tr>
                        <th><center>No </center></th>
                        <th><center>NIM</center></th>
                        <th><center>Nama </center></th>
                        <th><center>IPK </center></th>
                        <th><center>Jurusan </center></th>
                      </tr>
                  </thead>
                     <?php 
                     $no=0;
                     while($data=mysqli_fetch_array($tampil))
                    { $no++; ?>
                    <tbody>
                    <tr>
                    <td><center><?php echo $no; ?></center></td>
                    <td><center><?php echo $data['nim'];?></center></td>
                    <td><center><?php echo $data['nama'];?></center></td>
                    <td><center><?php echo $data['ipk'];?></center></td>
                    <td><center><?php echo $data['jurusan'];?></center></td>
                    </tr>
                    <?php
              } 
              ?>
                   </tbody>
                   </div>
                   </div>
</body>
                   </table>
                   </html>


  • Lanjut, membuat file untuk export data ke excel dari database yang sudah ada, silahkan copy dan pastekan kode di bawah ini kemudian simpan dengan nama reportdataexcel.php di direktory c:/xampp/htdocs/reportexcel/reportdataexcel.php
<?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', 'NIM');
$sheet->setCellValue('C1', 'Nama');
$sheet->setCellValue('D1', 'IPK');
$sheet->setCellValue('E1', 'Jurusan');

$query = mysqli_query($koneksi,"select * from mahasiswa");
$i = 2;
$no = 1;
while($row = mysqli_fetch_array($query))
{
    $sheet->setCellValue('A'.$i, $no++);
    $sheet->setCellValue('B'.$i, $row['nim']);
    $sheet->setCellValue('C'.$i, $row['nama']);
    $sheet->setCellValue('D'.$i, $row['ipk']);
    $sheet->setCellValue('E'.$i, $row['jurusan']);    
    $i++;
}

$styleArray = [
            'borders' => [
                'allBorders' => [
                    'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
                ],
            ],
        ];
$i = $i - 1;
$sheet->getStyle('A1:E'.$i)->applyFromArray($styleArray);


$writer = new Xlsx($spreadsheet);
$writer->save('Data Mahasiswa.xlsx');
echo "<script>window.location = 'Data Mahasiswa.xlsx'</script>";

?>


  • Selanjutnya jalankan file tersebut di browser dengan mengakses URL localhost/reportexcel, jika berhasil anda akan mendapatkan tampilan halaman seperti di bawah ini



  • Silahkan klik link EXPORT KE EXCEL jika berhasil maka anda akan mendapatkan sebuah file excel yang berisikan data mahasiswa yang ada di database yang di awal sudah di buat.

Sampai tahap ini anda sudah berhasil membuat export data ke excel dari mysql database dengan PHP, bagaimana? cukup mudah bukan? pastinya ya, jika anda masih bingung saya sudah menyiapkan source code nya untuk anda lebih memahami lagi dalam belajar, silahkan download source code nya di link berikut ini


DOWNLOAD

Semoga tutorial singkat ini bisa bermanfaat untuk anda yang sedang membuat report ke excel di PHP, pantau terus www.hakkoblogs.com untuk mendapatkan update terbaru terkait tutorial dan aplikasi gratis lainnya.

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel