Import data Excel ke Mysql dengan Codeigniter

Juli 26, 2016



Jika kalian seorang pengembang website atau lebih kerennya sering disebut web developer mungkin akan membutuhkan suatu cara untuk mengimport data kedalam database dalam jumlah bnyak karena ini sangat penting jika project anda membangun suatu sistem untuk mengolah data,
tidak mungkin anda harus insert data satu per satu jika data tersebut ada ribuan kebayangkan bagaimana capeknya. Saat ini setiap perusahaan sudah terkomputerisasi jadi data yang tadi nya Hard copy sekarang sudah banyak diolah menjadi Soft copy dalam format Excel atau yang lainnya guna untuk mempermudah dalam mencari data sehingga tidak takut untuk hilang atau rusak. Untuk membuat Import data Excel ke database maka kita membutuhkan library yang bernama PHPExcel untuk lebih lanjut mari kita buat project nya.

Bahan yang diperlukan

    1. Set Framework Codeigniter sesuai selera, buat lah suatu database dengan format tabel seperti berikut.
    CREATE TABLE IF NOT EXISTS `tbimport` (
    `No` int(5) NOT NULL AUTO_INCREMENT,
    `NamaKaryawan` varchar(50) NOT NULL,
    `Alamat` varchar(150) NOT NULL,
    `Posisi` varchar(150) NOT NULL,
    `status` varchar(50) NOT NULL,
    PRIMARY KEY (`No`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
    2. Extract library PHPExcel copy folder PHPExcel dan PHPExcel.php pada folder Classes simpan pada htdocs/Project/application/libraries/.

    3. Buatlah satu buah file excel sebagai sample.



    4. Buat lah folder dengan nama upload pada root directory untuk menyimpan file upload.

    5. Sekarang tahap koding buatlah sebuah controller dengan nama import.php dengan class import
    class Import extends CI_Controller {
    function __construct(){
    parent::__construct();
    $this->load->library(array('PHPExcel','PHPExcel/IOFactory'));
    }

    public function index() {
    $this->load->view('v_import');
    }

    public function upload(){
    $fileName = $this->input->post('file', TRUE);

    $config['upload_path'] = './upload/';
    $config['file_name'] = $fileName;
    $config['allowed_types'] = 'xls|xlsx|csv|ods|ots';
    $config['max_size'] = 10000;

    $this->load->library('upload', $config);
    $this->upload->initialize($config);

    if (!$this->upload->do_upload('file')) {
    $error = array('error' => $this->upload->display_errors());
    $this->session->set_flashdata('msg','Ada kesalah dalam upload');
    redirect('Welcome');
    } else {
    $media = $this->upload->data();
    $inputFileName = 'upload/'.$media['file_name'];

    try {
    $inputFileType = IOFactory::identify($inputFileName);
    $objReader = IOFactory::createReader($inputFileType);
    $objPHPExcel = $objReader->load($inputFileName);
    } catch(Exception $e) {
    die('Error loading file "'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage());
    }

    $sheet = $objPHPExcel->getSheet(0);
    $highestRow = $sheet->getHighestRow();
    $highestColumn = $sheet->getHighestColumn();

    for ($row = 2; $row <= $highestRow; $row++){
    $rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row,
    NULL,
    TRUE,
    FALSE);
    $data = array(
    "No"=> $rowData[0][0],
    "NamaKaryawan"=> $rowData[0][1],
    "Alamat"=> $rowData[0][2],
    "Posisi"=> $rowData[0][3],
    "Status"=> $rowData[0][4]
    );
    $this->db->insert("tbimport",$data);
    }
    $this->session->set_flashdata('msg','Berhasil upload ...!!');
    redirect('Import');
    }
    }
    }
     

    6. Buatlah file pada folder view dengan nama file v_import.php

    <div style="margin-top: 20px;">
    </div>
    <form action="<?php echo base_url();?>import/upload/" enctype="multipart/form-data" method="post">
    <input name="file" type="file" />
    <input type="submit" value="Import File" />
    </form>

    <?php echo $this->session->flashdata('msg'); ?>
    Jika sudah jalankan localhost project pada bar http://localhost/import_ci/ maka akan muncul tampilan view untuk mengupload, pilih file excel yang berformat .xls .xlsx .csv atau .ods untuk open office.
    jika berhasil maka data akan tersimpan dalam database mysql jika tidak ada atau error check kembali pengaturan codeigniter dan perhatikan script, so belajar jangan asal copas tapi pahami dan resapi.

    Semoga bermanfaat.

    Artikel Terkait

    Next Article
    « Prev Post
    Previous Article
    Next Post »
    Penulisan markup di komentar
    • Untuk menulis huruf bold gunakan <strong></strong> atau <b></b>.
    • Untuk menulis huruf italic gunakan <em></em> atau <i></i>.
    • Untuk menulis huruf underline gunakan <u></u>.
    • Untuk menulis huruf strikethrought gunakan <strike></strike>.
    • Untuk menulis kode HTML gunakan <code></code> atau <pre></pre> atau <pre><code></code></pre>, dan silakan parse kode pada kotak parser di bawah ini.

    Disqus
    Tambahkan komentar Anda

    Tidak ada komentar