Pada postingan kali ini menggunakan framework Codeigniter dan menggunakan library PhpSpreadsheet. Jadi sebelum memulai bergelut dengan pembuatan, silahkan download terlebih dahulu library PhpSpreadsheet dengan menggunakan bantuan composer. Ketikkan perintah dibawah untuk mendownlaod
composer require phpoffice/phpspreadsheet
Berikut adalah contoh penggunaan Import Data Dari Excel Ke Database Menggunakan Codeigniter, dimana pada contoh ini menggunakan struktur database seperti pada gambar.
Perlu diperhatikan kode di atas menggunakan sebuah model dengan nama "Modelku", jadi silahkan buat model dengan nama yang sama terlebih dahulu kemudian tambahkan fungsi berikut.
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Reader\Csv;
use PhpOffice\PhpSpreadsheet\Reader\Xlsx;
class Contoller extends CI_Controller {
public function aksi()
{
$file_mimes = array('application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
if(isset($_FILES['file']['name']) && in_array($_FILES['file']['type'], $file_mimes)) {
$arr_file = explode('.', $_FILES['file']['name']);
$extension = end($arr_file);
if('csv' == $extension) {
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Csv();
} else {
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
}
$spreadsheet = $reader->load($_FILES['file']['tmp_name']);
$sheetData = $spreadsheet->getActiveSheet()->toArray();
for($i = 1;$i < count($sheetData);$i++)
{
$nama = $sheetData[$i]['0'];
$username = $sheetData[$i]['1'];
$password = $sheetData[$i]['2'];
$nra_fix = str_replace(' ', '', $nra);
$ar = array(
'nama' => $nama,
'username' => $username,
'password' => $password
);
$a = $this->Modelku->get('user', "username='$username'")->result_array();
if (count($a)==0) {
$this->Modelku->insert('user', $ar);
}
}
}
}
}
function insert($table, $data)
{
$this->db->insert($table,$data);
return $this->db->insert_id();
}
function get($tabel, $where)
{
$this->db->select("*");
$this->db->from($tabel);
$this->db->where($where);
return $this->db->get();
}