Minggu, 12 Juli 2015

codeigniter import excel

  • Codeigniter import excel



  • Buka PhpMyadmin dan Buatkan contoh database seperti ini
CREATE TABLE IF NOT EXISTS `addressbook` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `firstname` varchar(255) DEFAULT NULL,
  `lastname` varchar(255) DEFAULT NULL,
  `phone` varchar(100) DEFAULT NULL,
  `email` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB;


  • Buka file database.php, seting database sesuai database anda

$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'ciaddressimport';


  • Buat sebiuah model dengan nama csv_model.php. dan tambahkan code berikut ini


<?php
 
class Csv_model extends CI_Model {
 
    function __construct() {
        parent::__construct();
 
    }
 
    function get_addressbook() {     
        $query = $this->db->get('addressbook');
        if ($query->num_rows() > 0) {
            return $query->result_array();
        } else {
            return FALSE;
        }
    }
 
    function insert_csv($data) {
        $this->db->insert('addressbook', $data);
    }
}
/*END OF FILE*/

  • Buat sebeuah controller dengan nama csv.php. dan tambahkan code berikut ini:


<?php
 
class Csv extends CI_Controller {
 
    function __construct() {
        parent::__construct();
        $this->load->model('csv_model');
        $this->load->library('csvimport');
    }
 
    function index() {
        $data['addressbook'] = $this->csv_model->get_addressbook();
        $this->load->view('csvindex', $data);
    }
 
    function importcsv() {
        $data['addressbook'] = $this->csv_model->get_addressbook();
        $data['error'] = '';    //initialize image upload error array to empty
 
        $config['upload_path'] = './uploads/';
        $config['allowed_types'] = 'csv';
        $config['max_size'] = '1000';
 
        $this->load->library('upload', $config);
 
 
        // If upload failed, display error
        if (!$this->upload->do_upload()) {
            $data['error'] = $this->upload->display_errors();
 
            $this->load->view('csvindex', $data);
        } else {
            $file_data = $this->upload->data();
            $file_path =  './uploads/'.$file_data['file_name'];
 
            if ($this->csvimport->get_array($file_path)) {
                $csv_array = $this->csvimport->get_array($file_path);
                foreach ($csv_array as $row) {
                    $insert_data = array(
                        'firstname'=>$row['firstname'],
                        'lastname'=>$row['lastname'],
                        'phone'=>$row['phone'],
                        'email'=>$row['email'],
                    );
                    $this->csv_model->insert_csv($insert_data);
                }
                $this->session->set_flashdata('success', 'Csv Data Imported Succesfully');
                redirect(base_url().'csv');
                //echo "<pre>"; print_r($insert_data);
            } else 
                $data['error'] = "Error occured";
                $this->load->view('csvindex', $data);
            }
 
        } 
 
}
/*END OF FILE*/

  • Buat sebuah view dengan nama  csvindex.php. dan tambahkan code berikut:

 <!DOCTYPE HTML>  
 <html>  
   <head>  
     <meta charset="utf-8">  
     <title>Adddress Book Project</title>  
     <link href="<?php echo base_url(); ?>assets/bootstrap/css/bootstrap.css" type="text/css" rel="stylesheet" />  
     <link href="<?php echo base_url(); ?>assets/css/styles.css" type="text/css" rel="stylesheet" />  
     <script src="<?php echo base_url(); ?>assets/js/jquery.js" type="text/javascript"></script>  
     <script src="<?php echo base_url(); ?>assets/bootstrap/js/bootstrap.min.js"></script>  
   </head>  
   <body>  
     <div class="navbar navbar-inverse navbar-fixed-top">  
       <div class="navbar-inner">  
         <div class="container">  
           <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">  
             <span class="icon-bar"></span>  
             <span class="icon-bar"></span>  
             <span class="icon-bar"></span>  
           </a>  
           <a class="brand" href="#">My Address book</a>  
           <div class="nav-collapse collapse">  
             <ul class="nav">  
               <li class="active"><a href="<?php echo base_url(); ?>"><i class="icon-home"></i>Home</a></li>  
               <li><a href="#about">About</a></li>  
             </ul>  
           </div><!--/.nav-collapse -->  
         </div>  
       </div>  
     </div>  
     <div class="container" style="margin-top:50px">    
        <br>  
        <?php if (isset($error)): ?>  
         <div class="alert alert-error"><?php echo $error; ?></div>  
       <?php endif; ?>  
       <?php if ($this->session->flashdata('success') == TRUE): ?>  
         <div class="alert alert-success"><?php echo $this->session->flashdata('success'); ?></div>  
       <?php endif; ?>  
       <h2>CI Addressbook Import</h2>  
         <form method="post" action="<?php echo base_url() ?>csv/importcsv" enctype="multipart/form-data">  
           <input type="file" name="userfile" ><br><br>  
           <input type="submit" name="submit" value="UPLOAD" class="btn btn-primary">  
         </form>  
       <br><br>  
       <table class="table table-striped table-hover table-bordered">  
         <caption>Address Book List</caption>  
         <thead>  
           <tr>  
             <th>First Name</th>  
             <th>Last Name</th>  
             <th>Phone</th>  
             <th>Email</th>  
           </tr>  
         </thead>  
         <tbody>  
           <?php if ($addressbook == FALSE): ?>  
             <tr><td colspan="4">There are currently No Addresses</td></tr>  
           <?php else: ?>  
             <?php foreach ($addressbook as $row): ?>  
               <tr>  
                 <td><?php echo $row['firstname']; ?></td>  
                 <td><?php echo $row['lastname']; ?></td>  
                 <td><?php echo $row['phone']; ?></td>  
                 <td><?php echo $row['email']; ?></td>  
               </tr>  
             <?php endforeach; ?>  
           <?php endif; ?>  
         </tbody>  
       </table>  
       <hr>  
       <footer>  
         <p>&copy;My Address Book</p>  
       </footer>  
     </div>  
   </body>  
 </html>  
Selamat mencoba

Tidak ada komentar:
Write komentar