Advertisement
kangjaz

controller_import

Nov 2nd, 2018 (edited)
4,152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.05 KB | None | 0 0
  1. <?php
  2. defined('BASEPATH') or exit('No direct script access allowed');
  3.  
  4. //load Spout Library
  5. require_once APPPATH . 'third_party/spout/src/Spout/Autoloader/autoload.php';
  6.  
  7. use Box\Spout\Reader\Common\Creator\ReaderEntityFactory;
  8.  
  9. class Import extends CI_Controller
  10. {
  11.  
  12.     function __construct()
  13.     {
  14.         parent::__construct();
  15.         //load model
  16.         $this->load->model('app');
  17.     }
  18.  
  19.     public function index()
  20.     {
  21.         //ketika button submit diklik
  22.         if ($this->input->post('submit', TRUE) == 'upload') {
  23.             $config['upload_path']      = './temp_doc/'; //siapkan path untuk upload file
  24.             $config['allowed_types']    = 'xlsx|xls'; //siapkan format file
  25.             $config['file_name']        = 'doc' . time(); //rename file yang diupload
  26.  
  27.             $this->load->library('upload', $config);
  28.  
  29.             if ($this->upload->do_upload('excel')) {
  30.                 //fetch data upload
  31.                 $file   = $this->upload->data();
  32.  
  33.                 $reader = ReaderEntityFactory::createXLSXReader(); //buat xlsx reader
  34.                 $reader->open('temp_doc/' . $file['file_name']); //open file xlsx yang baru saja diunggah
  35.  
  36.                 //looping pembacaat sheet dalam file        
  37.                 foreach ($reader->getSheetIterator() as $sheet) {
  38.                     $numRow = 1;
  39.  
  40.                     //siapkan variabel array kosong untuk menampung variabel array data
  41.                     $save   = array();
  42.  
  43.                     //looping pembacaan row dalam sheet
  44.                     foreach ($sheet->getRowIterator() as $row) {
  45.  
  46.                         if ($numRow > 1) {
  47.                             //ambil cell
  48.                             $cells = $row->getCells();
  49.  
  50.                             $data = array(
  51.                                 'nama'              => $cells[0],
  52.                                 'jenis_kelamin'     => $cells[1],
  53.                                 'alamat'            => $cells[2]
  54.                             );
  55.  
  56.                             //tambahkan array $data ke $save
  57.                             array_push($save, $data);
  58.                         }
  59.  
  60.                         $numRow++;
  61.                     }
  62.                     //simpan data ke database
  63.                     $this->app->simpan($save);
  64.  
  65.                     //tutup spout reader
  66.                     $reader->close();
  67.  
  68.                     //hapus file yang sudah diupload
  69.                     unlink('temp_doc/' . $file['file_name']);
  70.  
  71.                     //tampilkan pesan success dan redirect ulang ke index controller import
  72.                     echo    '<script type="text/javascript">
  73.                               alert(\'Data berhasil disimpan\');
  74.                               window.location.replace("' . base_url() . '");
  75.                           </script>';
  76.                 }
  77.             } else {
  78.                 echo "Error :" . $this->upload->display_errors(); //tampilkan pesan error jika file gagal diupload
  79.             }
  80.         }
  81.  
  82.         $this->load->view('import');
  83.     }
  84. }
  85.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement