Import Excell Kedalam Database MySQL pada Codeigniter

Import Excell Kedalam Database MySQL pada Codeigniter

3649
38
SHARE

Hai sahabat jumpa lagi dengan harviacode yang kali ini akan membahas bagaimana caranya upload/ import data dari excell file kedalam database MySQL. Pada pembahasan yang lalu kita telah belajar bagaimana import kedalam ecell file kedalam MySQL dengan php prosedural, kalau belum membaca silakan baca disini Import excel ke mysql menggunakan PHP.

Nah kali ini kita akan membahas bagaimana caranya import serupa tetapi dengan menggunakan framework Codeigniter. Untuk mempermudah pemahaman silakan baca dulu mengenai tutorial upload file yang bisa sahabat baca disini Cara membuat upload dan validasi pada Codeigniter 3. Kenapa harus baca itu dulu? Karena pada tutorial kali ini kita akan mengembangkan form upload tersebut dengan bantuan library Excell Reader. Pertama silakan download library nya dan masukkan kedalam folder libraries pada folder CI sahabat

Langsung saja kita buka file controller yang telah ada

Tentunya sahabat sudah familiar dengan controller diatas 🙂 kali ini kita akan membahas bagian akhir dari controller tersebut. Perhatikan potongan code ini

Pada contoh diatas kita hanya menampilkan data upload. Sekarang kita ganti dengan membaca dan memasukkan data.

Langkah pertama kita load library ExcellReader

Setelah itu tentukan file Excell yang telah diupload

Setelah file ditentukan selanjutnya baca file tersebut dan buatlah sebuah array yang berisi data dari file excell tersebut

Perhatikan baris pertama kita menentukan bahwa file yang dibaca berada dalam sheet pertama

$dataexcell menampung hasil array yang akan kita buat.

selanjutnya kita buat looping seperti biasa, dalam contoh file diatas kita akan memasukkan data nama, tempat lahir dan tanggal lahir

Setelah data sudah kita bentuk menjadi array selanjutnya kita akan memasukkan kedalam tabel menggunakan model seperti biasa. Disini saya contohkan seperti dibawah dengan nama Data_model

Setelah model selesai kita buat kita kembali ke controller. Gunakan model diatas untuk insert kedalam tabel

Selanjutnya ketika proses insert sudah selesai kita hapus file yang tadi kita upload agar tidak memenuhi server. Untuk menghapus kita bisa gunakan perintah delete_files atau unlink. Kalau diatas kita pakai delete_files, kali ini kiat akan menggunakan perintah unlink

 

Selesai…

 

Code lengkap controller silakan lihat dibawah ini

 

Full Model dapat dilihat disini

Untuk view kita tidak ubah

Untuk contoh template file excell dapat dilihat seperti dibawah ini

Demikian semoga bermanfaat

Bagikan artikel ini ya.. terima kasih

38 COMMENTS

  1. Terima kasih telah memberikan pengetahuannya,
    saya mencoba tutorial diatas dan terjadi masalah “non-existent class” excel reader, sudah saya ganti beberapa library excel reader dari lain tetap aja error demikian, kira2 bagaimana ya?

    kasus : codeigniter 3.0.3 hmvc

    terima kasih atas bantuannya

    • Hmm.. sepertinya class excel readenya tidak terbaca ya.. perlu dicek bagaimana HMVC memanggil class excel readernya. dan dicek juga penamaan classnya, terkadang casesensitif..

    • itu alamat action form nya mas. kalo error coba cek htaccesnya. jika tidak ada htaccess, gunakan index.php/upload/proses. dimana upload adalah nama controller nya dan proses adalah nama method yang menangani proses uploadnya. demikian mas Ramdan..

  2. itu modelnya kok begitu mas, ada satuan jumlah,barang..?? maksudnya gman ya.
    saya sudah berhasil upload tapi gak terbaca di databasennya,
    apakah harus persis antara excel dan databasny mas?

  3. saya sudah berhasil upload, cmn data excel tidak bisa tersimpan di database, kira2 kenapa ya??
    itu untuk model kenapa ada, satuan ,barang, jumlah mas apa ada yg salah ya?

    untuk excelnya apakah harus sama dewngan databse formatnya.

    teriam kasih

    • dicek secara berurutan mas.. jika sudah berhasil upload file, selanjutnya adalah proses pembacaan file. pastikan pembacaan file berhasil, caranya bisa pakai vardump(). jika sudah berhasil muncul datanya tinggal di cek query inputnya.

      satuan barang jumlah mana mas?

      formatnya gak harus sama mas, nanti bisa disesuaikan sebelum insert ke database.

  4. pas upload file berhasil pembacaan file ke data array jg udah berhasil pas di print_r,CMAN MUNCUL PESAN ERROR ‘undefined offset’ secara looping itu kenapa ya

    • ‘undefined offset’ artinya kita coba memanggil array yang belum terdefinisikan. periksa kembali pendefinisian arraynya mas. pertama periksa arraynya ada isinya atau masih kosong. jika udah ada isinya periksa cara pemanggilan arraynya udah bener atau belum…

  5. Halo, saya ada excel dengan format kolom ada yang dimerge. Bagaimana untuk mendefinisikan kolom untuk memulai megimpor datanya? Saya sudah coba sesuaiken tidak bisa, terjadi error yang mana value menjadi NULL.

    Saya mencoba dengan format excel tanpa merge berjalan baik.

    • kalo menggunakan cara ini memang tidak bisa untuk merge mas Aby.. mungkin saya dengan PHP Excel bisa, tapi saya juga belum pernah mencobanya. maaf mas.

    • waduh mohon maaf saya tidak menyimpan filenya. sudah hilang entah kemana hahaha.. tapi disitu tinggal download excel readernya aja. nanti script nya copas aja dari artikel yang ada mas..

  6. Mohon pencerahannya mas…. saya coba import berhasil sih mas, hanya data tanggal saja yang tidak bisa masuk, dalam mysql hanya muncul 0000-00-00, padahala pada data excel nya ada mas dengan format dd/mm/yyy, mohon pencerahannya mas terima kasih

    • iya untuk tanggal di excelnya harus diubah ke format text terlebih dahulu.. dan formatnya harus yyyy-mm-dd baru nanti diimport..

  7. A PHP Error was encountered

    Severity: 8192

    Message: Methods with the same name as their class will not be constructors in a future version of PHP; Excel_reader has a deprecated constructor

    Filename: libraries/Excel_reader.php

    Line Number: 103

    Backtrace:

    File: C:\xampp\htdocs\skripsi\application\controllers\bidashboard.php
    Line: 173
    Function: library

    File: C:\xampp\htdocs\skripsi\index.php
    Line: 315
    Function: require_once

    A PHP Error was encountered

    Severity: 8192

    Message: Methods with the same name as their class will not be constructors in a future version of PHP; OLERead has a deprecated constructor

    Filename: libraries/oleread.inc.php

    Line Number: 37

    Backtrace:

    File: C:\xampp\htdocs\skripsi\application\libraries\Excel_reader.php
    Line: 31
    Function: _error_handler

    File: C:\xampp\htdocs\skripsi\application\libraries\Excel_reader.php
    Line: 31
    Function: require_once

    File: C:\xampp\htdocs\skripsi\application\controllers\bidashboard.php
    Line: 173
    Function: library

    File: C:\xampp\htdocs\skripsi\index.php
    Line: 315
    Function: require_once

    errornya kayak gitu, cara fixinnya gmn ya? saya pake CI 3.0.
    datanya sudah tersimpan didatabase, hanya saja masih ada tampilan error kyk gitu..

    • cara paling gampang adalah menggunakan error_reporting(0) khusus untuk file tersebut. cara lain adalah mendownload library excel reader terbaru mas.

  8. Sore Mas Hari, saya dapat adalah error
    “The filename is not readable”

    saya menggunakan windows . Mohon pencerahannya mas..
    Trimakasih

    • hmm… coba upload file xls yang lain mas. yang datanya lebih sedikit / sederhana. Kemungkinannya kalo not readable, salah path atau ada karakter yang menyebabkan exxcel readenya tidak bisa membaca.

  9. Sore Mas Hari, Saya dapat adalah error seperti berikut
    “The filename .xls is not readable”

    Saya menggunakan Windows. mohon pencerahannya mas, trims

  10. mas saya ada pesan begini,
    Parse error: syntax error, unexpected ‘new’ (T_NEW) in E:\controlX\htdocs\tesekspor\excel_reader.php on line 916

    915 function Spreadsheet_Excel_Reader($file=”,$store_extended_info=true,$outputEncoding=”) {
    916 $this->_ole =& new OLERead();
    $this->setUTFEncoder(‘iconv’);
    if ($outputEncoding != ”) {
    $this->setOutputEncoding($outputEncoding);
    }
    for ($i=1; $i=1)?chr(($i-1)/26+64):”) . chr(($i-1)%26+65));
    $this->colnames[$name] = $i;
    $this->colindexes[$i] = $name;
    }
    $this->store_extended_info = $store_extended_info;
    if ($file!=””) {
    $this->read($file);
    }
    }

    aitu kenapa ya mas

  11. mas saya ada pesan begini,
    Parse error: syntax error, unexpected ‘new’ (T_NEW) in E:\controlX\htdocs\tesekspor\excel_reader.php on line 916

    915 function Spreadsheet_Excel_Reader($file=”,$store_extended_info=true,$outputEncoding=”) {
    916 $this->_ole =& new OLERead();
    $this->setUTFEncoder(‘iconv’);
    if ($outputEncoding != ”) {
    $this->setOutputEncoding($outputEncoding);
    }
    for ($i=1; $i=1)?chr(($i-1)/26+64):”) . chr(($i-1)%26+65));
    $this->colnames[$name] = $i;
    $this->colindexes[$i] = $name;
    }
    $this->store_extended_info = $store_extended_info;
    if ($file!=””) {
    $this->read($file);
    }
    }

    aitu kenapa ya mas, saya pake php dan xampp terbaru

LEAVE A REPLY