Please enable JavaScript!
Bitte aktiviere JavaScript!
S'il vous plaît activer JavaScript!
Por favor,activa el JavaScript!
antiblock.org

 |  |  | 
Anda ingin membuat website?
Untuk Anda yang sedang mencari orang untuk jasa pembuatan website, Saya akan bantu buatkan aplikasi sesuai kebutuhan Anda. Segera hubungi : mail@rizaldimaulidia.com. Selengkapnya tentang profil saya klik www.rizaldimaulidia.com.

PHP Tips and Trick

Cara Mudah Membuat Export Excel Tanpa Plugin dengan PHP

img-responsive

Sudah lama tidak update lagi tutorial. Pada kesempatan kali ini saya akan coba sharing mengenai cara membuat fitur untuk export data dari database ke excel. Sebelumnya saya juga telah membuat tutorial Cara Membuat Import Data Excel dengan PHP dan MySQL. Mungkin sebagian dari kalian berpikir pasti harus menggunakan plugin atau librari. Pikiran tersebut salah besar, karena nyatanya ada sebuah kode / skrip untuk mengkonversi kode html menjadi Excel. Apakah ada kelemahannya? setau saya kelemahannya adalah :

– kita kurang bisa leluasa untuk melakukan kustomisasi terhadap file excel yang akan kita export dikarenakan hanya beberapa tag html saja yang bisa dibaca.
– file yg dihasilkan adalah file HTML biasa yang diberi ektension .xls dan header sbg file excel , bukan file native ms excel.
– pada beberapa versi aplikasi utk membaca file excel bisa terjadi file tersebut tidak dapat dibuka degan semestinya (karena hanya casting file HTML biasa yang diganti extension nya menjadi .xls).

Terlepas dari semua itu, cara ini cukup ampuh bagi kalian yang dikejar sama deadline kerjaan haha. Saya juga telah membuat tutorial export excel dengan plugin PHPExcel, klik link berikut untuk lihat tutorialnya : Cara Membuat Export Data Dari Database ke Excel dengan PHPExcel.

Oke tanpa basa basi lagi, kita langsung terjun ke TKP.


DEMO
Sebelum masuk ke tutorialnya. Mungkin ada yang mau lihat demonya terlebih dahulu. Silahkan klik link berikut untuk melihat demonya : Lihat Demo.


STEP 1 – PERSIAPAN
Untuk tahap persiapan, cukup buat sebuah folder dengan nama export_php, lalu simpan pada folder xampp/htdocs/.


STEP 2 – DATABASE
Pada step ini, kita akan membuat databasenya. ikuti langkah-langkah berikut ini :

  1. Buat sebuah database dengan nama mynotescode.
  2. Buat sebuah tabel dengan nama siswa. Struktur tabelnya sebagai berikut :
    Struktur Tabel - Cara Mudah Membuat Export Excel Tanpa Plugin dengan PHP

    CREATE TABLE IF NOT EXISTS `siswa` (
      `nis` varchar(11) NOT NULL,
      `nama` varchar(50) NOT NULL,
      `jenis_kelamin` varchar(10) NOT NULL,
      `telp` varchar(15) NOT NULL,
      `alamat` text NOT NULL,
      PRIMARY KEY (`nis`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

STEP 3 – KONEKSI DATABASE
Pada step ini, kita akan membuat file php yang berfungsi untuk menghubungkan dengan database MySQL. Silahkan buat file koneksi.php, lalu simpan di folder xampp/htdocs/export_php/. Berikut ini kodenya :

<?php
$host = 'localhost'; // Nama hostnya
$username = 'root'; // Username
$password = ''; // Password (Isi jika menggunakan password)
$database = 'mynotescode'; // Nama databasenya

// Koneksi ke MySQL dengan PDO
$pdo = new PDO('mysql:host='.$host.';dbname='.$database, $username, $password);
?>

STEP 4 – VIEW DATA
Langkah selanjutnya adalah membuat halaman untuk view data siswa dari database. Buat sebuah file dengan nama index.php, lalu simpan di folder xampp/htdocs/export_php/. Berikut ini tampilan dan kodenya :
View Data - Cara Mudah Membuat Export Excel Tanpa Plugin dengan PHP

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    
    <title>Export Data ke Excell dengan PHP dan MySQL</title>

  </head>
  <body>
    <div style="background: whitesmoke;padding: 10px;">
      <h1 style="margin-top: 0;">Export Data ke Excell dengan PHP dan MySQL</h1>
      <p>
        FOLLOW US ON &nbsp;
        <a target="_blank" style="background: #3b5998; padding: 0 5px; border-radius: 4px; color: #f7f7f7; text-decoration: none;" href="https://www.facebook.com/mynotescode">Facebook</a> 
        <a target="_blank" style="background: #00aced; padding: 0 5px; border-radius: 4px; color: #ffffff; text-decoration: none;" href="https://twitter.com/code_notes">Twitter</a> 
        <a target="_blank" style="background: #d34836; padding: 0 5px; border-radius: 4px; color: #ffffff; text-decoration: none;" href="https://plus.google.com/118319575543333993544">Google+</a>
      </p>
    </div>
    
    <h3>Data Siswa</h3>
    
    <a href="proses.php">Export ke Excell</a><br><br>
    
    <table border="1" cellpadding="5">
      <tr>
        <th>No</th>
        <th>NIS</th>
        <th>Nama</th>
        <th>Jenis Kelamin</th>
        <th>Telepon</th>
        <th>Alamat</th>
      </tr>
      <?php
      // Load file koneksi.php
      include "koneksi.php";
      
      // Buat query untuk menampilkan semua data siswa
      $sql = $pdo->prepare("SELECT * FROM siswa");
      $sql->execute(); // Eksekusi querynya
      
      $no = 1; // Untuk penomoran tabel, di awal set dengan 1
      while($data = $sql->fetch()){ // Ambil semua data dari hasil eksekusi $sql
        echo "<tr>";
        echo "<td>".$no."</td>";
        echo "<td>".$data['nis']."</td>";
        echo "<td>".$data['nama']."</td>";
        echo "<td>".$data['jenis_kelamin']."</td>";
        echo "<td>".$data['telp']."</td>";
        echo "<td>".$data['alamat']."</td>";
        echo "</tr>";
        
        $no++; // Tambah 1 setiap kali looping
      }
      ?>
    </table>
  </body>
</html>

Saya akan coba jelaskan sedikit mengenai kode diatas.

include “koneksi.php”;
Kode tersebut berfungsi untuk me-load file koneksi.php.

$sql = $pdo->prepare(“SELECT * FROM siswa”);
$sql->execute();
Kode tersebut berfungsi untuk melakukan query ke database dan mengeksekusinya. Pada cotoh diatas, kita akan melakukan query untuk menampilkan semua data dari tabel siswa.

$data = $sql->fetch()
Kode tersebut berfungsi untuk mengambil semua data hasil query dan menampung data-data tersebut di dalam sebuah array lalu menyimpannya ke dalam variabel $data. Kode tersebut saya simpan di dalam sebuah kode while(….) yang berfungsi untuk melakukan proses perulangan sampai data terkahir dengan tujuan agar kita bisa menampilkan datanya satu per satu.

echo "<tr>";
echo "<td>".$no."</td>";
echo "<td>".$data['nis']."</td>";
echo "<td>".$data['nama']."</td>";
echo "<td>".$data['jenis_kelamin']."</td>";
echo "<td>".$data['telp']."</td>";
echo "<td>".$data['alamat']."</td>";
echo "</tr>";

Pada kode diatas terdapat variabel $data digunakan untuk mengambil isi dari field-field yang ada pada tabel siswa di database mynotescode. Pada kode diatas juga ada kode yang berada pada tanda [‘……’], kode tersebut harus sama dengan nama field yang ada pada tabel siswa.


STEP 5 – EXPORT EXCEL
Terakhir, kita akan membuat fitur untuk export ke excel. Buat sebuah file dengan nama proses.php, lalu simpan pada folder xampp/htdocs/export_php/. Berikut ini kodenya :

<?php
// Skrip berikut ini adalah skrip yang bertugas untuk meng-export data tadi ke excell
header("Content-type: application/vnd-ms-excel");
header("Content-Disposition: attachment; filename=nama_filenya.xls");
?>

<h3>Data Siswa</h3>
    
<table border="1" cellpadding="5">
  <tr>
    <th>No</th>
    <th>NIS</th>
    <th>Nama</th>
    <th>Jenis Kelamin</th>
    <th>Telepon</th>
    <th>Alamat</th>
  </tr>
  <?php
  // Load file koneksi.php
  include "koneksi.php";
  
  // Buat query untuk menampilkan semua data siswa
  $sql = $pdo->prepare("SELECT * FROM siswa");
  $sql->execute(); // Eksekusi querynya
  
  $no = 1; // Untuk penomoran tabel, di awal set dengan 1
  while($data = $sql->fetch()){ // Ambil semua data dari hasil eksekusi $sql
    echo "<tr>";
    echo "<td>".$no."</td>";
    echo "<td>".$data['nis']."</td>";
    echo "<td>".$data['nama']."</td>";
    echo "<td>".$data['jenis_kelamin']."</td>";
    echo "<td>".$data['telp']."</td>";
    echo "<td>".$data['alamat']."</td>";
    echo "</tr>";
    
    $no++; // Tambah 1 setiap kali looping
  }
  ?>
</table>

Inti dari kode untuk export excel nya hanya ada 2 baris kode. Berikut ini kodenya :
header(“Content-type: application/vnd-ms-excel”);
header(“Content-Disposition: attachment; filename=nama_filenya.xls”);

Yang saya beri warna merah bisa kalian ganti dengan nama file excel nya. Bagaimana? sangat mudah dan simpel bukan?. Semoga dengan tutorial ini, deadline kerjaan bisa teratasi haha. Sekian untuk tutorial kali ini. Jika ada hal yang ingin ditanyakan, langsung tanyakan saja lewat kolom komentar dibawah ini. Jangan lupa LIKE dan SHARE nya hehe, Terimakasih.


SOURCE CODE
Untuk mengunduh source code nya, klik salah satu link dibawah ini
– Download versi PDO : Link download yang sesuai tutorial ini yakni menggunakan fungsi PDO untuk query ke databasenya
– Download versi MySQLi : Link download untuk Anda yang ingin source code versi MySQLi dari tutorial ini

Tutorial membuat export excel tanpa plugin dengan php, Tutorial membuat export excel tanpa librari dengan php, cara tercepat membuat export data ke excel dengan php, cara export data ke excel dengan php, Source Code export excel tanpa plugin dengan php

Export Excel

(Total : 43,266 viewers, 1 viewers today)
cara-mudah-membuat-export-excel-tanpa-plugin-dengan-php

ABOUT THE AUTHOR

Interested in android programming, long time focused on web development. Visit My Profile Site at www.rizaldimaulidia.com

POST YOUR COMMENTS

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

Name *

Email *

Website

38 Comments

  1. Pratiwi Wulandary

    Gan, saya berhasil export di localhost tp setelah di hosting gak jalan. Hanya bentuk tabel2 html dibrowser. Kenapa ya ?

    • coba sisipi script berikut pada file proses.php, simpan dipaling atas setelah script < ?php ini_set(‘display_errors’, 1); ini_set(‘display_startup_errors’, 1); error_reporting(E_ALL);

  2. Herry Pernando

    gan biar angka nol di depan bisa ikut terexport di excel ny gmna gan. soalnya hasil export nol jd hilang.

  3. Julian Pamuji

    Punya Saya tidak jalan setelah saya kembangin di Bootstrap…..
    muncul data saja tapi tidak ada muncul dialog save atau open

  4. Asti Widyaningish

    Kak agar barisnya bisa lebih dari 65.536 bagaimana ya?
    karena selalu mentok 65.536 baris

    • ini sepertinya karena kebanyakan data yang di exportnya. sehingga mencapai batas maksimum eksekusi pada php nya.
      Bisa dengan skrip ini :

      ini_set("memory_limit", "-1");
      set_time_limit(0);

      tapi saya sangat tidak merekomendasikan cara ini karena akan membebani server nantinya

  5. cardaramdani

    agan yg baik hati dan berilmu adakah tutorial.y export ke xcel ini yang menggunakan filter berdasarkan bulan? terimakasih sebelum dan sesudahnya
    misal saya sudah ada source html untuk filter by bulan
    nah saya ingin mengexport data yg sudah saya filter berdasarkan bulan.

    • oh iya om belum saya buatkan kalau untuk excel, saya baru buatkan untuk pdf. mungkin next tutorial akan saya buatkan, saya masukan ke waiting list tutorial yang akan saya buat

  6. harry sutrisna

    gan, export sudah berhasil, tapi data inputan tidak muncul di excel, mohon solusi bang

  7. DhanRDDRG

    klo hasil exportnya 13+15E gmn tu gan???

  8. depoy suzuran

    css nya tidak bisa kepanggil ya gan??

  9. dayudarmala

    gan ko g muncul downloadnya ya?
    malah muncul kaya view data aja..
    persis sma kya index.php
    knpa ya?

    • skrip ini sudah ditambahkan belum ?
      <?php
      header("Content-type: application/vnd-ms-excel");
      header("Content-Disposition: attachment; filename=nama_filenya.xls");
      ?>

  10. Hendra Gun

    Sangat bermanfaat. Trmksh sudah berbagi. Dengan cara spt diatas (tanpa library) sheet yg dihasilkan bisa lebih dari satu gak ya ? Sy cari2 wejangan blum nemu juga. Thx

    • sama-sama om senang bisa membantu 😀
      setau saya kalau mau lebih dari 1 sheet tidak bisa om kalau tanpa plugin. harus dengan plugin

  11. bennyphp

    Om, kalau header(“Content-type: application/vnd-ms-excel”);
    header(“Content-Disposition: attachment; filename=nama_filenya.xls”);
    kan langsung save ke pc. tapi kalau saya mau dia pop up dl untuk save di folder mana bisa ngak om?

    • Rizaldi Maulidia Achmad

      setau saya tidak bisa om. disini kan kita hanya melakukan perintah untuk mendownload sebuah file excel. sisanya bagaimana browser tersebut

    • Rizaldi Maulidia Achmad

      Maksudnya gimana om?

  12. mrmuslih

    setelah saya export, data di database nya tidak muncul, yang muncul hanya header tabel dan no nya terisi sesuai jumalah data di database

    • Rizaldi Maulidia Achmad

      Coba kirimkan source code nya om ke saya, kirim via fans page fb. Biar saya bisa cek

  13. Herizenit

    Ma ksh mz tutorialnya, mau nanya kalau mau nambah sheet bagaimana ya mz caranya ?

  14. badbitch

    kalau buat agar excel langsung jadi format text bisa gan?

    • Rizaldi Maulidia Achmad

      Maksudnya format text disini seperti apa om?

  15. Dimas Alfiansyah

    gan kok pas dibuka filenya corrupt ya?, tulisannya file format not valid

  16. Dimas Alfiansyah

    gan kok pas ane buka file exportnya kok corrupt ya?, tulisannya format file not valid gitu

    • Rizaldi Maulidia Achmad

      itu di Ok saja om. tapi tampilkan data yang di export nya?

  17. Danang Sindu Sesotyo

    Nama file nya bisa tidak menggunakan nama dari database ?

    • Rizaldi Maulidia Achmad

      iya sangat bisa. om tinggal buat aja query ke database untuk mengambil nama filenya. lalu set nama file nya pada skrip yang bagian ini :
      header(“Content-Disposition: attachment; filename=nama_filenya.xls”);

      tinggal ubah bagian yg : nama_filenya.xls

      • arif amanu

        bisakah nama filenya dibuat dinamis dari variabel php?

    • Rizaldi Maulidia Achmad

      saya tidak bisa lihat screenshotnya om. coba kirim screenshotnya lewat pesan di fans page facebook saja om.
      Maaf baru sempat balas

NOTE ARCHIVES