Cara menggunakan file terbuka phpexcel

Sudah lama sekali saya tidak mengupdate postingan, pada kesempatan kali ini. Saya akan coba share postingan/tutorial yang semoga bermanfaat yaitu Cara Import Data Dari Excel menggunakan Framework Codeigniter 3, library PHPExcel (berguna untuk membantu kita membaca isi file excel yang akan di import datanya) , dan Database MySQL


PENTING, HARAP BACA TERLEBIH DAHULU
Tutorial ini menggunakan library PHPExcel untuk proses impor excel. Perpustakaan ini sejauh yang saya tahu dan saya telah menguji bahwa itu hanya mendukung PHP Versi 7. 2. 8. Jadi bagi anda yang menggunakan PHP Versi diatas 7. 2. 8, sebaiknya downgrade dulu atau download Xampp yang PHPnya masih versi 7. 2. 8 dan di bawah. Untuk tutorial PHP Versi 7. 2. Saya akan membuat 8 ke atas, jadi tunggu saja update tutorial berikutnya


Berikut fitur-fitur yang akan kami buat

  1. Lihat Data dari Database
  2. Formulir untuk Impor Data
  3. Pratinjau data yang akan diimpor sebelum disimpan ke database
  4. Validasi file yang dipilih oleh Pengguna pada formulir impor. Hanya file Microsoft Office 2007 (. xlsx) yang diizinkan
  5. Validasi input data. Jika ada data yang kosong/belum diisi, sistem akan memberitahukan jumlah data yang kosong dan data mana yang kosong

DEMO
Sebelum ke tutorialnya. Mungkin ada yang mau lihat demonya dulu. Silahkan klik link berikut untuk melihat demonya. Lihat Demo


LANGKAH 1 – PERSIAPAN

  1. Buat folder dengan nama import_excel_ci dan simpan ke folder xampp/htdocs/< /a>
  2. Buat folder dengan nama excel dan simpan ke folder  xampp/htdocs/import_excel_ci / a> a> a>
  3. Buat folder dengan nama js , lalu simpan ke folder  xampp/htdocs/ import_excel_ci/< /a> .
  4. Download plugin PHPExcel, klik link berikut. Unduh
  5. Download Codeigniter Framework, klik link berikut. Unduh
  6. Download format Excel untuk proses import, klik link berikut. Unduh
  7. Unduh Perpustakaan jQuery, Klik tautan berikut. Unduh
  8. Salin dan tempel file codeigniter_v3. 7z yang sudah didownload tadi ke folder xampp/htdocs/import_excel_ci/ .
  9. Ekstrak file codeigniter_v3. Ini 7z .
  10. Ekstrak file PHPExcel. 7z yang sudah didownload tadi, lalu copy paste folder PHPExcel PHPExcel ke folder xampp/htdocs/import_excel_ci/ aplikasi/pihak_ketiga/ .
  11. Ganti nama berkas format_ci. xlsx yang sudah didownload tadi ke dalam format . xlsx , lalu copy dan paste file tersebut ke folder xampp/htdocs/import_excel_ci/excel/ .
  12. Salin dan tempel file jquery. min. js yang sudah didownload tadi ke folder xampp/htdocs/import_excel_ci/js/ .

LANGKAH 2 – DATABASE
Pada langkah ini, kita akan membuat database. ikuti langkah-langkah berikut

  1. Buat database dengan nama mynotescode
  2. Buat tabel dengan nama siswa . Struktur tabelnya adalah sebagai berikut.
    Cara menggunakan file terbuka phpexcel
    CREATE TABLE `siswa` (
      `id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
      `nis` varchar(11) NOT NULL,
      `nama` varchar(50) NOT NULL,
      `jenis_kelamin` varchar(10) NOT NULL,
      `alamat` text NOT NULL
    )

LANGKAH 3 – KONFIGURASI
Karena dibuat dengan Codeigniter, kita harus mengkonfigurasi framework codeigniter terlebih dahulu

Baca Juga

  • Tutorial Codeigniter Indonesia Lengkap Plus Source Code
  • Tutorial PHP Bahasa Indonesia Lengkap Plus Source Code
  • Cara Menggunakan jQuery DataTables dengan Codeigniter dan MySQL
  • Cara Membuat Upload Banyak Gambar dengan PHP AJAX Bootstrap

  1. Buka folder xampp/htdocs/import_excel_ci/application/config/
  2. Buka file config. php
    Temukan kode berikut
    $config['base_url'] = 'http://localhost/import_excel_ci/';
    _5Ubah kode tersebut sehingga menjadi seperti ini.
    $config['base_url'] = 'http://localhost/import_excel_ci/';
    _

    Kode di atas digunakan untuk mengatur baseurl
    Kemudian simpan file tersebut

  3. Buka file muat otomatis. php
    Temukan kode berikut.
    $autoload['libraries'] = array();
    $autoload['helper'] = array();

    Ubah seperti ini

    $autoload['libraries'] = array('database');
    $autoload['helper'] = array('url');
    _

    Kode di atas digunakan untuk memuat database kelas dan url
    Kemudian simpan file tersebut

  4. Buka file rute. php
    Temukan kode berikut.
    $route['default_controller'] = 'welcome';

    Ubah seperti ini

    $route['default_controller'] = 'siswa';
    _

    Kode di atas digunakan untuk mengatur pengontrol mana yang akan dimuat terlebih dahulu. Secara default, Codeigniter telah mengatur pengontrol default, yang disambut baik. Di sini kita mengatur pengontrol default menjadi siswa
    Kemudian simpan file tersebut

  5. Buka file database. php
    Temukan kode berikut.
    'hostname' => 'localhost',
    'username' => '',
    'password' => '',
    'database' => '',

    Ubah seperti ini

    'hostname' => 'localhost', // Nama host
    'username' => 'root', // Username
    'password' => '', // Jika menggunakan password isi, jika tidak kosongkan saja
    'database' => 'mynotescode', // Nama databasenya
    _

    Kode di atas digunakan untuk koneksi ke database
    Kemudian simpan file tersebut


LANGKAH 4 – MEMBUAT MODEL
Langkah selanjutnya adalah membuat model. Buat file dengan nama StudentModel. php , Kemudian simpan ke folder xampp/htdocs/import_excel_ci/application/models/ . Ini kodenya.

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class SiswaModel extends CI_Model {
  public function view(){
    return $this->db->get('siswa')->result(); // Tampilkan semua data yang ada di tabel siswa
  }
  
  // Fungsi untuk melakukan proses upload file
  public function upload_file($filename){
    $this->load->library('upload'); // Load librari upload
    
    $config['upload_path'] = './excel/';
    $config['allowed_types'] = 'xlsx';
    $config['max_size']	= '2048';
    $config['overwrite'] = true;
    $config['file_name'] = $filename;
  
    $this->upload->initialize($config); // Load konfigurasi uploadnya
    if($this->upload->do_upload('file')){ // Lakukan upload dan Cek jika proses upload berhasil
      // Jika berhasil :
      $return = array('result' => 'success', 'file' => $this->upload->data(), 'error' => '');
      return $return;
    }else{
      // Jika gagal :
      $return = array('result' => 'failed', 'file' => '', 'error' => $this->upload->display_errors());
      return $return;
    }
  }
  
  // Buat sebuah fungsi untuk melakukan insert lebih dari 1 data
  public function insert_multiple($data){
    $this->db->insert_batch('siswa', $data);
  }
}
_

Pada kode di atas, kita membuat fungsi view(). di mana ada kode pengembalian $this->db->get('student')->result() . Kode berfungsi untuk menampilkan semua data pada tabel siswa . Struktur dasar tulisannya seperti ini. return $this->db->get(' table_name ')->result() . Kemudian pada kode diatas juga terdapat kode return , kode tersebut digunakan untuk menampilkan hasil dari suatu fungsi. Pada kasus di atas, hasil yang dihasilkan oleh return adalah data siswa.

Kemudian ada fungsi upload_file($filename) , fungsi ini berfungsi untuk mengupload file excel yang akan di import data. Ada beberapa konfigurasi dalam unggahan tersebut, antara lain.

  1. $config['upload_path'] = '. /unggul/';
    Berfungsi untuk menentukan folder tempat menyimpan file yang akan diunggah. Dalam catatan ini, kami akan mengunggahnya di folder excel yang berada di root direktori web ( xampp /htdocs/import_excel_ci/ excel ).
  2. $config['allowed_types'] = 'xlsx';
    Berfungsi untuk memvalidasi semua jenis file yang dapat diunggah
  3. $config['max_size'] = '2048';
    Berfungsi untuk menentukan maksimal ukuran file yang dapat diupload dalam satuan Kb. Disini saya tentukan 2048 Kb = 2 MB
  4. $config['timpa'] = true;
    Ini berfungsi untuk mengganti file ketika sudah ada file dengan nama itu di folder (tempat penyimpanan file yang diunggah).
  5. $config['nama_berkas'] = $namaberkas;
    Berfungsi untuk menentukan dan mengganti nama file yang akan diunggah sesuai keinginan. Dalam postingan ini, kami menyetel nama file menjadi import_data. xlsx
  6. Untuk lebih jelasnya konfigurasi apa saja yang bisa kita gunakan, bisa langsung lihat dokumentasi Codeigniter disini

$ini->upload->data()
Berfungsi untuk mengambil output dari hasil proses upload. outputnya berupa array seperti contoh berikut

Array
(
  [file_name]     => mypic.jpg
  [file_type]     => image/jpeg
  [file_path]     => /path/to/your/upload/
  [full_path]     => /path/to/your/upload/jpg.jpg
  [raw_name]      => mypic
  [orig_name]     => mypic.jpg
  [client_name]   => mypic.jpg
  [file_ext]      => .jpg
  [file_size]     => 22.2
  [is_image]      => 1
  [image_width]   => 800
  [image_height]  => 600
  [image_type]    => jpeg
  [image_size_str] => width="800" height="200"
)

$ini->upload->display_errors()
Berfungsi untuk menerima pesan error saat proses upload gagal

$this->db->insert_batch('siswa', $data);
Berfungsi untuk memasukkan lebih dari 1 data sekaligus. Ada 2 parameter yang dibutuhkan oleh fungsi ini yaitu

  1. Parameter 1. diisi dengan nama tabel
  2. Parameter 2. diisi dengan array data yang akan disisipkan, misalnya array.
    $config['base_url'] = 'http://localhost/import_excel_ci/';
    _0

Untuk detail lebih lanjut tentang insert_batch, silakan lihat dokumentasinya secara langsung.


LANGKAH 5 - MEMBUAT CONTROLLER
Pada tahap ini, kita akan membuat controller. Buat file dengan nama Mahasiswa. php , lalu simpan ke folder xampp/htdocs/import_excel_ci/application/controllers/ . Ini kodenya.

$config['base_url'] = 'http://localhost/import_excel_ci/';
_1

Saya akan menjelaskan sedikit tentang kode di atas

$excelreader = new PHPExcel_Reader_Excel2007();
$loadexcel = $excelreader->load('excel/'. $ini->nama file. ’. xlsx');
$sheet = $loadexcel->getActiveSheet()->toArray(null, true, true ,true);
Kode ini berfungsi untuk membaca isi file excel yang sudah kita upload tadi. Hasilnya akan berupa array yang akan di-loop menggunakan foreach pada file form. php .

array_push($data, [
'nis'=>$baris['A'],
'nama'=>$baris['B'],
'sex_type'=>$baris['C'],
'alamat'=>$baris['D'],
]);
Kode ini berfungsi untuk menambahkan array baru pada variabel $data . Nantinya, variabel data tersebut akan diisi dengan array seperti berikut.

$config['base_url'] = 'http://localhost/import_excel_ci/';
_2

LANGKAH 6 – LIHAT
Langkah selanjutnya adalah membuat tampilan file untuk menampilkan antarmuka. Buat file dengan nama tampilan. php , lalu simpan ke folder xampp/htdocs/import_excel_ci/application/views/ . Berikut tampilan dan kodenya.

Cara menggunakan file terbuka phpexcel

$config['base_url'] = 'http://localhost/import_excel_ci/';
_3

Pada kode diatas terdapat kode foreach($siswa as $data){ , kode tersebut akan menampilkan data siswa satu per satu satu sampai data siswa yang terakhir.
gema “ ini . ””;
gema “ nama . ””;
gema “ sex_type . ” ”;
gema “ alamat . ””;
Pada kode di atas yang saya tandai dengan warna merah. Itu harus sama dengan nama kolom/field pada tabel database student .


LANGKAH 7 – BENTUK
Terakhir, kita akan membuat formulir untuk mengimpor data. Buat file dengan nama form. php , lalu simpan ke folder xampp/htdocs/import_excel_ci/application/views/ . Berikut tampilan dan kodenya.

Cara menggunakan file terbuka phpexcel

$config['base_url'] = 'http://localhost/import_excel_ci/';
_4

Saya tidak akan menjelaskan script diatas, karena sudah saya jelaskan masing-masing script (dengan komentar). Namun saya akan menjelaskan alur dari form impor diatas. Pertama, pengguna harus mengunduh Format File Excel yang telah kita buat sebelumnya. Kedua, user mengisikan data yang akan di import pada file excel yang sudah di download tadi. Ketiga, pengguna memilih file excel yang datanya akan diimpor kemudian mengklik tombol pratinjau. Keempat, Saat pengguna mengklik tombol pratinjau, sistem akan tampil

  1. Validasi apakah file yang dipilih memiliki format Microsoft Excel 2007 (. xlsx) atau tidak
  2. Validasi apakah pengguna telah mengisi semua data yang diperlukan di file excel. Jika masih ada yang kosong/belum diisi, sistem akan memberikan informasi berupa jumlah data yang masih kosong dan menginformasikan kepada pengguna jika ada data yang kosong dengan memberikan latar belakang warna merah pada kolom/baris yang kosong ( di tabel pratinjau).
  3. Ketika Anda melewati dua validasi yang saya sebutkan di atas, sistem akan memunculkan tombol Impor untuk melakukan proses impor data. Namun jika ternyata tidak lolos validasi maka tombol import tidak akan muncul

Mungkin itu saja untuk postingan kali ini. Semoga bisa bermanfaat. Jika ada yang tidak dimengerti, tanyakan langsung pada form komentar di bawah. Jangan lupa LIKE dan SHARE ya, terima kasih banyak