Advertisement
sriyanto

ImportExcel

Jul 5th, 2021
274
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.94 KB | None | 0 0
  1. <?php
  2. defined('BASEPATH') OR exit('No direct script access allowed');
  3. //load Spout Library
  4. require_once APPPATH . 'third_party/spout/src/Spout/Autoloader/autoload.php';
  5.  
  6. use Box\Spout\Reader\Common\Creator\ReaderEntityFactory;
  7. use Box\Spout\Writer\Common\Creator\WriterEntityFactory;
  8. use Box\Spout\Common\Entity\Row;
  9. $reader = ReaderEntityFactory::createXLSXReader();
  10. $reader->setShouldFormatDates(true); // default value
  11.  
  12. class Alumni extends CI_Controller
  13. {
  14.         public function __construct(){
  15.         parent::__construct();
  16.         $this->load->model('Model_alumni');
  17.        
  18.         }
  19.         public function index(){
  20.             $data['title']='Alumni Data';
  21.             $data['user']= $this->db->get_where('user',['email'=>$this->session->userdata('email')])->row_array();
  22.            
  23.             $data['alumni']=$this->Model_alumni->tampil();
  24.             $this->load->view('templates/header',$data);
  25.             $this->load->view('templates/sidebar',$data);
  26.             $this->load->view('templates/topbar',$data);
  27.             $this->load->view('alumni/index',$data);
  28.             $this->load->view('templates/footer');
  29.              //ketika button submit diklik
  30.              if ($this->input->post('submit', TRUE) == 'upload') {
  31.                 $config['upload_path']      = './upload/doc/'; //siapkan path untuk upload file
  32.                 $config['allowed_types']    = 'xlsx'; //siapkan format file
  33.                 $config['file_name']        = 'doc' . time(); //rename file yang diupload
  34.        
  35.                 $this->load->library('upload', $config);
  36.        
  37.                 if ($this->upload->do_upload('excel')) {
  38.                     //fetch data upload
  39.                     $file   = $this->upload->data();
  40.        
  41.                     $reader = ReaderEntityFactory::createXLSXReader(); //buat xlsx reader
  42.                     $reader->open('./upload/doc/' . $file['file_name']); //open file xlsx yang baru saja diunggah
  43.        
  44.                     //looping pembacaan sheet dalam file        
  45.                     foreach ($reader->getSheetIterator() as $sheet) {
  46.                         $numRow = 1;
  47.        
  48.                         //siapkan variabel array kosong untuk menampung variabel array data
  49.                         $save   = array();
  50.        
  51.                         //looping pembacaan row dalam sheet
  52.                         foreach ($sheet->getRowIterator() as $row) {
  53.        
  54.                             if ($numRow > 1) {
  55.                                 //ambil cell
  56.                                 $cells = $row->getCells();
  57.                                
  58.                                 $reader->setShouldFormatDates(true);
  59.                                 $data = array(
  60.                                     'fullname'              => $cells[1],
  61.                                     'tempatlahir'     => $cells[2],
  62.                                     'ortu'            => $cells[3],
  63.                                     'tanggallahir'  => $cells[4],
  64.                                     'kelas'            => $cells[5],
  65.                                     'jk'            => $cells[6],
  66.                                     'confirm'            => $cells[7],
  67.                             'catatan'            => $cells[8],
  68.                             'date_created'            => $cells[9],
  69.                             'email'            => $cells[10],
  70.                             'dataurl'            => $cells[11],
  71.                             'foto1'            => $cells[12],
  72.                             'foto2'            => $cells[13]
  73.                                 );
  74.        
  75.                                 //tambahkan array $data ke $save
  76.                                 array_push($save, $data);
  77.                             }
  78.        
  79.                             $numRow++;
  80.                         }
  81.                         //simpan data ke database
  82.                         $this->model_alumni->simpan($save);
  83.        
  84.                         //tutup spout reader
  85.                         $reader->close();
  86.        
  87.                         //hapus file yang sudah diupload
  88.                         unlink('./upload/doc/' . $file['file_name']);
  89.        
  90.                         //tampilkan pesan success dan redirect ulang ke index controller import
  91.                         echo    '<script type="text/javascript">
  92.                                  alert(\'Data berhasil disimpan\');
  93.                                
  94.                              </script>';
  95.                               $this->session->set_flashdata('alumni','<div class="alert alert-success alert-dismissible" role="alert">The alumni data has been imported and added!</div>');
  96.                               redirect('alumni/index');
  97.                     }
  98.                 } else {
  99.                     echo "Error :" . $this->upload->display_errors(); //tampilkan pesan error jika file gagal diupload
  100.                 }
  101.             }
  102.         }
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement