• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Jaranguda

Belajar Mengajar

  • Home
  • Sponsor/Jasa
  • Tentang

Mengexport Database MySQL ke Excel dengan PHP

Last Updated on 21 February 2020 By tommy Leave a Comment

Membuat laporan Excel dari MySQL, menjadi mudah dengan PHP. Dulunya bernama PHPExcel sekarang berubah menjadi PhpSpreadsheet. Dari segi perintah banyak yang mirip, jadi migrasi dari PHPExcel ke PhpSpreadsheet tidak terlalu sulit.

Data yang akan kita export adalah Data Penduduk Indonesia, file sql nya bisa diimport dibawah ini

 
CREATE TABLE `datapenduduk` (
  `ID` int(11) NOT NULL,
  `provinsi` varchar(50) NOT NULL,
  `jumlah` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
--
-- Dumping data for table `datapenduduk`
--
 
INSERT INTO `datapenduduk` (`ID`, `provinsi`, `jumlah`) VALUES
(1, 'BANTEN', 10632166),
(2, 'BENGKULU', 1715518),
(3, 'DI YOGYAKARTA', 3457491),
(4, 'DKI JAKARTA', 1679163),
(5, 'GORONTALO', 1040164),
(6, 'JAMBI', 3092265),
(7, 'JAWA BARAT', 43053732),
(8, 'JAWA TENGAH', 32382657),
(9, 'JAWA TIMUR', 37476757),
(10, 'KALIMANTAN BARAT', 4395983),
(11, 'KALIMANTAN TENGAH', 2212089),
(12, 'KEPULAUAN RIAU', 1679163),
(13, 'LAMPUNG', 7608405),
(14, 'MALUKU', 1533506),
(15, 'MALUKU UTARA', 1038087),
(16, 'NANGGROE ACEH DARUSSALAM', 4494410),
(17, 'NUSA TENGGARA BARAT', 4500212),
(18, 'PAPUA', 2833381),
(19, 'RIAU', 5538367);
 
--
-- Indexes for dumped tables
--
 
--
-- Indexes for table `datapenduduk`
--
ALTER TABLE `datapenduduk`
  ADD PRIMARY KEY (`ID`);
COMMIT;

Buat satu folder baru untuk menyimpan file yang akan kita buat. Contoh beri nama php-mysql-excel

Install PhpSpreadsheet

Pindah ke folder php-mysql-excel, lalu install library PhpSpreadsheet dengan composer

composer require phpoffice/phpspreadsheet

Setelah terinstall, buat file index.php, copy paste script dibawah ini

<?php
// index.php
require 'vendor/autoload.php';
 
// login MySQL
$DB_SERVER = "localhost";
$DB_USER = "USER";
$DB_PASSWORD = "PASSWORD";
$DB_NAME = "tutorial";
$mysqli = new mysqli("$DB_SERVER","$DB_USER","$DB_PASSWORD","$DB_NAME");
 
if ($mysqli->connect_errno) {
  echo "Errno: " . $mysqli->connect_errno . "\n";
  echo "Error: " . $mysqli->connect_error . "\n";
  exit;
}
 
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
 
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
 
// buat nama sheetnya
$sheet->setTitle('Sheet 1');
// nama kolom dibaris pertama
$sheet->setCellValue('A1', 'Provinsi');
$sheet->setCellValue('B1', 'Jumlah Penduduk');
$sheet->setCellValue('C1', 'Diupdate');
 
// timestamp
$tz = 'Asia/Jakarta';
$dt = new DateTime("now", new DateTimeZone($tz));
$timestamp = $dt->format('Y-m-d G:i:s');
 
$formatTanggal = \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel($timestamp);
$data = mysqli_query($mysqli,"select provinsi,jumlah from datapenduduk");
// mulai dari baris kedua
// baris pertama untuk nama kolom
$row = 2;
while($record = mysqli_fetch_array($data))
{
    $sheet->setCellValue('A'.$row, $record['provinsi']);
    $sheet->setCellValue('B'.$row, $record['jumlah']);
    $sheet->setCellValue('C'.$row, $formatTanggal);
    $row++;
}
 
// format tanggal di kolom C 
$spreadsheet->getActiveSheet()->getStyle('C')
    ->getNumberFormat()
    ->setFormatCode(
        \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_DATETIME
    );
 
$writer = new Xlsx($spreadsheet);
// set header agar file di download
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header("Content-Transfer-Encoding: Binary");
header('Content-disposition: attachment; filename="Jumlah Penduduk Indonesia.xlsx"');
header('Cache-Control: max-age=0');
$writer->save("php://output");
?>

Script diatas berjalan lancar diatas PHP 7.x. Agar file Excel yang di konversi disimpan didalam folder php-mysql-excel ubah bagian

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header("Content-Transfer-Encoding: Binary");
header('Content-disposition: attachment; filename="Jumlah Penduduk Indonesia.xlsx"');
header('Cache-Control: max-age=0');
$writer->save("php://output");

menjadi

$writer->download('jumlah penduduk indonesia.xlsx');

Tulisan menarik lainnya

  • Menampilkan Data Dari Database MySQL ke Combobox dengan PHP

    Pada tutorial kali ini, kita akan menampilkan data dari database kedalam combobox. Buat sebuah database…

  • Mengelola Database MySQL dengan Adminer

    Salah satu aplikasi ringan pengganti phpMyAdmin adalah Adminer. Tidak perlu instalasi, yang di perlukan hanya…

  • Menampilkan data MySQL ke Table dengan PHP

    Tutorial kali ini adalah cara Menampilkan data MySQL ke Table HTML dengan script PHP. Berikut…

  • Tutorial Koneksi PHP dengan MySQL

    Dibawah ini akan dijelaskan mengenai cara untuk mengkoneksikan PHP ke database MySQL. Tulis script dibawah…

Filed Under: PHP

Reader Interactions

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Primary Sidebar

Pencarian

Tanya Jawab tentang DevOps SRE CPE, gabung di https://t.me/devopsindonesia

Terbaru

  • Cara Menonaktifkan Pager di macOS
  • Cara Mengupdate Nama Apple silicon-as-a-Service Scaleway
  • Cara Force Delete Namespace di Kubernetes
  • Install PHP MariaDB di Mac Monterey
  • MacOS Minta Install Git

Komentar

  • Ari on Cara Mematikan SSID Molecool Balifiber
  • kiki anarki on Mengambil Data dari Situs BPJS Ketenagakerjaan dengan PHP cURL
  • musgan on Password Router Huawei HG8245H5 Indihome
  • ghabily on Mengambil Informasi Router Alcatel Lucent G-241W-A dengan PHP
  • nea on Mencari urutan angka yang hilang di PHP

Tulisan Populer

  • Password Router Huawei HG8245H5 Indihome 1.1m views
  • Password Terbaru ZTE F609 Indihome 784k views
  • Password Superadmin Huawei HG8245A 314k views
  • Cara Setting Manual Modem GPON ZTE F609 Indihome 272.2k views
  • Cara Setting Wireless ZTE F609 Indihome 256k views
  • Mengaktifkan Port LAN di Huawei HG8245 Indihome 169k views
  • Akses UseeTV Indihome via Wireless ZTE F609 156.5k views
  • Kemana Menghilangnya Saldo BCA 50 ribu 150.1k views
  • Cara Reset Password ZTE F609 Indihome 147.2k views
  • Cara Setting DHCP Server Modem/Router ZTE F609 112.8k views

Kategori

  • Delphi
  • dll
  • Gambas
  • Internet
  • Java
  • Lazarus
  • Linux
  • PHP
  • Review
  • Teknologi

Sponsor

kadal.id
carakami.com
kuotabisa.com
Untuk jadi sponsor, hubungi kita lewat halaman sponsor
© 2021. Jaranguda
  • Linux
  • PHP
  • Internet
  • Teknologi
  • Delphi
  • Gambas
  • Java