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

Jaranguda

Belajar Mengajar

  • Home
  • Sponsor/Jasa
  • Tentang

Mengimport File Excel Ke MySQL dengan Script PHP

Last Updated on 18 February 2020 By tommy 47 Comments

Kita akan menggunakan library PHP Excel Reader, untuk keperluan percobaan ini saya menyertakan script dan database percobaan, link download bisa dilihat dibagian bawah tutorial ini.

Versi terbaru bisa dilihat di Mengimpor Excel ke MySQL Dengan PhpSpreadsheet

Sebagai contoh, data yang akan kita pakai seperti gambar dibawah ini
database percobaan

Buat sebuah database di MySQL, lalu eksekusi script dibawah ini

CREATE TABLE IF NOT EXISTS `mesin` (
  `mesinID` int(11) NOT NULL AUTO_INCREMENT,
  `mesin_code` varchar(11) NOT NULL,
  `desc` text NOT NULL,
  `seri` varchar(11) NOT NULL,
  `created_by` varchar(12) NOT NULL,
  `created_date` datetime NOT NULL,
  PRIMARY KEY (`mesinID`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;

table diatas adalah tempat untuk menyimpan file excel yang kita miliki.

Kita mulai ke pembuatan script import, buat sebuah file dengan nama import.php tambahkan script dibawah ini

<title>Script Import File Excel</title>
<h1>Script Import File Excel</h1>
<form method="post" enctype="multipart/form-data" action="jalan.php">
Pilih File Excel*: <input name="fileexcel" type="file"> <input name="upload" type="submit" value="Import">
</form>
* file yang bisa di import adalah .xls (Excel 2003-2007).

Tampilan dari script diatas ketika dijalankan di browser seperti gambar dibawah ini
tampilan import excel

lalu buat script untuk memproses data dari file import.php, kita namakan jalan.php tambahkan script dibawah ini

<?php
include "excel_reader2.php";
$username = "root";
$password = "aksesroot";
$database = "kacibang";
 
mysql_connect("localhost", $username, $password);
mysql_select_db($database);
 
// file yang tadinya di upload, di simpan di temporary file PHP, file tersebut yang kita ambil
// dan baca dengan PHP Excel Class
$data = new Spreadsheet_Excel_Reader($_FILES['fileexcel']['tmp_name']);
$hasildata = $data->rowcount($sheet_index=0);
// default nilai 
$sukses = 0;
$gagal = 0;
 
for ($i=2; $i<=$hasildata; $i++)
{
  $data1 = $data->val($i,2); 
  $data2 = $data->val($i,3);
  $data3 = $data->val($i,4);
  $created_by = 'Admin'; 
  $date = date('Y-m-d H:i:s');
  $rand = rand();
 
$query = "INSERT INTO mesin  VALUES (null,'$data1','$data2','$rand', '$created_by', '$date')";
$hasil = mysql_query($query);
 
if ($hasildata) $sukses++;
else $gagal++;
 
echo "< pre>";
print_r($query);
echo "< /pre>";
 
}
echo "<b>import data selesai.</b>";
echo "Data yang berhasil di import : ".$sukses.;
echo "Data yang gagal diimport : ".$gagal.;
echo "back import";
?>

Script untuk mengimport Excel ke MySQL dengan PHP cukup sampai disini, sekarang coba buka file import.php di browser, pilih file excel yang mau di import pada contoh kodemesin.xls lalu klik import, contoh tampilan waktu proses import selesai
proses import data

Untuk pengembangan lebih lanjut bisa dilihat pada bagian dokumentasi PHP Excel Reader
Link download di update 28 Oktober 2013

Last Updated on 18 February 2020 by tommy

Tulisan menarik lainnya

  • Membuat Script Login dengan PHP dan MySQL

    Update 13 Feb 2014 PHP + MySQLi bisa dilihat di Membuat Script Login Sederhana dengan…

  • Script Autocomplete PHP MySQL Jquery

    Sebagai contoh untuk mempermudah pembelajaran ini, kita akan membuat script pencarian kata. Buat terlebih dahulu…

  • Script untuk Login ke Webiste dengan PHP CURL

    Sebagai contoh kita akan menggunakan script di tutorial Membuat Script Login Sederhana dengan PHP dan…

  • Parsing File CSV dan Import ke MySQL dengan PHP

    File CSV yang kita miliki adalah data asal, karena hanya dibuat sebagai contoh pengolahan data…

Filed Under: PHP Tagged With: Excel, php

Reader Interactions

Comments

  1. Prs says

    16 February 2022 at 14:13

    [ASK]

    Data di Excel kolom 1 valuenya “MOTOR”

    Setelah di import hasilnya dari kolom 1 valuenya “MOTO” (di tabel)

    Jadi Valuenya kurang satu digit terakhir itu semua kolom seperti itu.
    ada solusi??

    Reply
    • tommy says

      18 February 2022 at 10:33

      ini pake php versi berapa? Udah coba pake cara https://jaranguda.com/mengimpor-excel-ke-mysql-dengan-phpspreadsheet/

      Reply
  2. Rahman says

    11 July 2020 at 22:54

    Gan, untuk menampilkan data excel yang gagal diupload selain jumlahnya, bagaimana ya? Terima kasih.

    Reply
  3. Rezaldi says

    14 October 2018 at 17:37

    Parse error: syntax error, unexpected ‘;’ in C:\xampp\htdocs\perpustakaan\jalan.php on line 39

    mas kalo ada bacaan itu apa yang salah mas??

    Reply
  4. burhanamali says

    11 July 2018 at 10:37

    gan, ketika upload file untuk kedua kalinya (posisi database ada datanya), banyak data yang gagal di import, itu penyebabnya apa ya?
    saya coba upload dengan file excel >10.000 baris.
    mohon pencerahannya

    Reply
    • tommy says

      11 July 2018 at 13:04

      kalo filenya segede itu emang harus dipecah dulu, bisa dipecah jadi beberapa file. Atau coba cari info tentang chunk

      Reply
  5. ari says

    13 January 2017 at 21:16

    ijin download mas

    Reply
    • Basit says

      27 November 2019 at 13:05

      Jika file excelnya perubahan data masal, bagian mana yg perlu di rubah ya pak

      Reply
  6. Tomi says

    17 May 2016 at 15:59

    Ini sifatnya menimpa file input yang sebelumnya tidak ? misalnya sebelumnya upload test1.xls sukses. Lalu saya mau menambahkan upload test2.xls apakah file yang pertama diupload akan tertimpa dengan yang terakhir ?

    Reply
    • tommy says

      17 May 2016 at 16:11

      file yang di upload hanya sementara, jadi walaupun meng-upload beberapa kali dengan nama yang sama ngga akan di timpa

      Reply
  7. Leo says

    23 April 2016 at 23:44

    thank you for the scripts… very helpful!!!

    Reply
  8. Elia says

    15 February 2016 at 14:10

    gan kl errornya ini kenapa ya?
    syntax error, unexpected ‘new’ (T_NEW) in C:\xampp\htdocs\smsgateway\excel_reader2.php on line 916

    Reply
    • tommy says

      17 February 2016 at 14:54

      emang yang mau di import seperti apa file excelnya?

      Reply
      • michael says

        15 April 2021 at 03:31

        semoga msih ada notif mas nya, saya juga sama mas kasusnya seperti mas diatas. file yg saya upload .xls mas, dengan php saya 8.0.2 apakah mempengaruhi?

        Reply
  9. Akange says

    25 November 2015 at 12:41

    mau nanya kalo data tidak ada di database gimana ?
    maksudnya gini :
    data di excel : kode=1,2,3
    di database : kode=1,2

    jadi yang kode 3 tidak masuk didatabase,,,,gimana boss ?

    kalo dari sourcenya anda langsung masuk smua ke database…

    Reply
    • tommy says

      25 November 2015 at 13:02

      pertanyaannya kurang jelas, ini data yang ngga ada data apa?
      coba buat contoh aslinya biar lebih jelas kalo kode pake format 1,2,3 pasti ngga mungkin ada tanda komanya.

      Reply
      • Akange says

        26 November 2015 at 08:51

        kurang jelas gimana….
        ya g mungkin juga kode ada komanya..itu misalkan
        kode di database:
        1
        2

        kode di di excel:
        1
        2
        3

        jadi data yang di database kan cuman ada 1 dan 2 ?

        yang jadi pertanyaan gimana prosesnya,,,kalo di anda =

        $sukses = 0;
        $gagal = 0;

        for ($i=2; $ival($i,2);
        $data2 = $data->val($i,3);
        $data3 = $data->val($i,4);
        $created_by = ‘Admin’;
        $date = date(‘Y-m-d H:i:s’);
        $rand = rand();

        $query = “INSERT INTO mesin VALUES (null,’$data1′,’$data2′,’$rand’, ‘$created_by’, ‘$date’)”;
        $hasil = mysql_query($query);

        if ($hasildata) $sukses++;
        else $gagal++;

        itukan langsung masuk semua ke database tidak ada filternya…

        masih kurang paham ???

        Reply
        • tommy says

          26 November 2015 at 09:28

          ya ngga masalah lah, orang ngga ada pembanding data di database. di contoh diatas, databasenya masih kosong, jadi ngga ada masalah.

          jadi anda contoh kasusnya mau nge bandingin data yang ada di database ya? kalo ga ada di tampilin error kalo ada langsung masuk?
          kalo ia ntar saya kasi contoh scriptnya (logikanya) ntar takutnya ngga kaya gitu jadi sia-sia :P

          Reply
  10. kartala says

    16 November 2015 at 23:30

    gan dimana caranya agar hasil export database di sql digit terakhir tidak berubah jadi angka nol atau angkanya langsung diexport dalam format text

    Reply
    • tommy says

      17 November 2015 at 13:26

      maksudnya gimana ya? kurang ngerti, bisa di kasi contoh

      Reply
  11. Fathur Rohman says

    20 October 2015 at 06:22

    Bagaimana menangani ini gan?
    The filename D:WebServerxampptmpphp2415.tmp is not readable

    email ke : [email protected]
    Terimakasih…

    Reply
    • tommy says

      20 October 2015 at 21:10

      coba di debug scriptnya, nama filenya dari mana?

      Reply
  12. bayu darma says

    3 July 2015 at 08:05

    mas boleh tanya jjika kita menginginkan data yang sudah di export ke exel itu tampilannya lebih baik gmna mas , seperti contoh kaya rekap absensi gitu mas , mohon pencerahaannya mas

    terimakasih

    Reply
    • tommy says

      3 July 2015 at 12:33

      tampilin pake tabel HTML aja

      Reply
  13. zia says

    2 November 2014 at 21:33

    gan tanya ???? hilangin kode ini setelah proses gimana:
    Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\…….\…….\excel_reader2.php on line 916

    Reply
    • tommy says

      6 November 2014 at 08:46

      pake PHP versi berapa? walaupun error tersebut muncul tapi proses import nya sukses kan?
      kalau hanya menghilangkan warning setting di php.ini dibagian display_error = off lalu restart apachenya.

      Reply
  14. faizal says

    27 October 2014 at 09:17

    gan kalo field yg di insert tidak urut gimana scriptnya?
    mohon bantuannya ane masih bangung thx :D

    Reply
    • faizal says

      27 October 2014 at 10:07

      terus saya coba edit sendiri gabungin script dari web lain tapi error gan :D
      errornya di line 916

      Reply
  15. Edward says

    8 October 2014 at 22:31

    gan tolong bantuannya kalau misal ketika ingin masukan ke mysql, maka dicek dulu apakah data yang masuk sudah ada atau belum untuk menghindari double insert.
    contoh :
    Kode = DT3686.
    sebelum dimasukan ke mysql maka discript jalan.php sekalian dicek. apakah kode tersebut sudah pernah ada atau belum. kalau misal belum, maka data boleh masuk.
    jika sudah ada maka kode tersebut berikut keterangan tidak akan dimasukan. dan ketika dimasukan akan diinfokan bahwa data gagal disimpan karena kode sudah ada sebanyak 7,8,9,dst ….
    mohon bantuan pencerahan dalam pembuatan scriptnya.

    Reply
    • tommy says

      10 October 2014 at 11:29

      salah satu caranya waktu pembuatan table MySQL nya columnya di setting UNIQUE
      Data Unique di MySQL/PHPMYADMIN

      Reply
  16. juwanda sanjaya says

    25 September 2014 at 17:11

    kalo untuk import file txt coding phpny seperti apa gan

    Reply
  17. Arif says

    21 August 2014 at 13:29

    Kalau buat format xlsx tidak bisa ya…
    gimana caranya supaya bisa…
    dan kalau mau input data tanggal formatnya gimana…
    saya coba tanggal 2/2/2014 di excel tapi tidak bisa masuk ke database…

    Reply
    • tommy says

      22 August 2014 at 13:13

      xlsx belum saya cobain, format tanggal bisa diliat dibagian $date = date(‘Y-m-d H:i:s’);
      tinggal disesuaiin aja. Lihat manual date di http://php.net/manual/en/function.date.php

      Reply
  18. Endip Yus Fauzi says

    19 July 2014 at 14:28

    sudah seh, aku sudah pake itu untuk sistem akademik dan saya memakai untuk office 2003

    Reply
    • arif says

      21 August 2014 at 11:54

      untuk format xlsx g bisa ya…

      Reply
  19. Endip Yus Fauzi says

    12 July 2014 at 21:47

    hemm.. gan sepertinya script ini belum kompatibel 2007, soalnya aku dah coba, script di atas sudah pernah saya coba di atas dan hasilnyapun ada cell yang kosong di mysqlnya kalo pake excel 2007

    Reply
    • tommy says

      14 July 2014 at 09:24

      kolom sama barisnya udah disesuaikan belum? dari percobaan saya selama ini ga ada masalah. Dan script ini dipake di sistem yang kita gunakan tiap hari.

      Reply
  20. Ricky says

    16 June 2014 at 12:15

    bro… kok error gini ya setelah diimpor ??? di cek ke db pun gak masuk datanya

    The filename C:\xampp\tmp\php3A2.tmp is not readable

    mohon dibantu ya bro…
    ke email : [email protected]

    terima kasih tutorialnya

    Reply
    • tommy says

      16 June 2014 at 19:25

      coba ubah $tmp_name = “C:\xampp\tmp” dan pastikan folder C:\xampp\tmp ada

      Reply
  21. dimas says

    6 May 2014 at 11:14

    gan kalo ditambahi tanggal sekarang sama username pembuat data gimana caranya

    Reply
  22. tommy says

    28 October 2013 at 16:14

    link download udah di update. silahkan di download

    Reply
  23. aline says

    24 October 2013 at 13:51

    file.nya tidak bisa di download mas.., coba di upload di medifire

    Reply
    • tommy says

      24 October 2013 at 15:11

      bisa kok, barusan saya coba ngga ada yang salah :D

      Reply
      • aline says

        24 October 2013 at 21:22

        ni errormya mas.,
        di IDM jgha error 0 byte
        ======================
        https://fbcdn-sphotos-e-a.akamaihd.net/hphotos-ak-ash3/p480x480/1374291_650495028306096_1449439330_n.jpg

        Reply
        • tommy says

          26 October 2013 at 18:07

          oh iya bener, nanti senin saya upload ya :) thanks atas infonya

          Reply
  24. budi says

    26 August 2013 at 13:43

    Kok Error gini ya bro? apa yang salah ya.

    Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\htdocs\Monitoring\excel_reader.php on line 916

    Notice: Undefined index: upload in C:\xampp\htdocs\Monitoring\proses_aploud.php on line 7

    Notice: Undefined offset: 0 in C:\xampp\htdocs\Monitoring\excel_reader.php on line 390

    Reply
    • tommy says

      26 August 2013 at 13:51

      pake PHP versi berapa? coba gunakan script yang di download, jangan dulu ganti namanya :)

      Reply

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 Mengganti Port Screen Sharing macOS
  • 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

Komentar

  • mazda on Tutorial Lengkap Install Mail Server Postfix Dovecot MariaDB di CentOS 7
  • adi on Menggunakan Mikrotik Sebagai SSH Client
  • aris u on Solusi Simple Queue Mikrotik Tidak Berjalan
  • Bowo on Cara Mematikan SSID Molecool Balifiber
  • aris on Solusi Simple Queue Mikrotik Tidak Berjalan

Tulisan Populer

  • Password Router Huawei HG8245H5 Indihome 1.2m views
  • Password Terbaru ZTE F609 Indihome 784.5k views
  • Password Superadmin Huawei HG8245A 318.3k views
  • Cara Setting Manual Modem GPON ZTE F609 Indihome 273.1k views
  • Cara Setting Wireless ZTE F609 Indihome 257.1k views
  • Mengaktifkan Port LAN di Huawei HG8245 Indihome 169.9k views
  • Akses UseeTV Indihome via Wireless ZTE F609 156.8k views
  • Kemana Menghilangnya Saldo BCA 50 ribu 153.2k views
  • Cara Reset Password ZTE F609 Indihome 147.6k views
  • Cara Setting DHCP Server Modem/Router ZTE F609 113.6k 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