Codeigniter 4 Import File Excel Jogjatech
Codeigniter 4 Import File Excel Jogjatech

Hello in this tutorial we will discus tutorial Codeigniter 4 of how to import record data from excel file into database MySQL. To import Excel file in this tutorial we will use library PHPExcel to reading file. This Codeigniter 4 tutorial Import data Excel was tested and running in PHP version up to PHP 7.3.

Tutorial Codeigniter 4 kali ini akan membahas tentang bagaimana melakukan import data dari file Excel kedalam database MySQL. Untuk melakukan import data dari file excel dengan Codeigniter 4 kali ini saya melibatkan library PHPExcel untuk membaca file. Tutorial Codeigniter 4 import data dari file excel disini sudah dicoba dan berhasil berjalan sampai PHP versi PHP 7.3.

Tutorial Codeigniter 4 import file Excel dengan library PHPExcel kali ini masih menggunakan project Codeigniter 4 sebelumnya pada pembahasan Tutorial Codeigniter 4 Export PHPExcel, sehingga disini saya tidak melakukan instalasi project framework Codeigniter 4 dari awal, adapun table data yang akan kita gunakan disini adalah data tabel pegawai yang sudah tersedia pada tutorial tersebut.

Langkah langkah dalam melakukan import file Excel dengan Codeigniter 4 dengan menggunakan library PHPExcel dapat dilakukan dengan tahapan tahapan langkah seperti berikut.

Menambah Tombol Import Excel

Untuk melakukan import data dari file excel pada Codeigniter 4 dengan library PHPExcel, langkah pertama yang kita lakukan adalah membuat tombol import excel pada file view pada folder “app\Views\pegawai\index.php”, buka file “index.php” pada folder tersebut, kemudian lakukan modifikasi dengan menambahkan tombol import seperti berikut :

<button class=”btn btn-sm btn-success import”><i class=”fa fa-file”></i> Import Excel</button>

Perhatikan pada tombol button diatas saya menyertakan class import pada button.

Kemudian langkah selanjutnya adalah menambahkan script untuk menjalankan tombol import pada file script pada folder “app\Views\pegawai\script.php” dengan membaca class import yang kita lampirkan pada butto. Kemudian buka kembali file “script.php” lalu lakukan modifikasi dengan menambahkan kode script berikut :

//import Excel
$(‘.import’).on(“click”,function() {
window.location = “<?php echo base_url(“public/pegawai/import”); ?>”;
});

Buat File View Upload File

Langkah selanjutnya untuk melakukan import data dari file excel dengan Codeigniter 4, adalah membuat file form untuk input data, buatlah sebuah file sehingga menjadi seperti pada folder “app\Views\pegawai\import_data.php”, lalu isikan tag html pembentuk form seperti berikut :

<div class=”right_col” role=”main”>
<div class=””>
<div class=”row”>
<form class=”form-horizontal form-label-left” name=”frm_skpd” id=”frm_skpd” method=”POST” action=”<?php echo base_url(‘public/pegawai/importExcel’);?>” enctype=”multipart/form-data”>
<div class=”item form-group”>
<label class=”control-label col-md-2 col-sm-2 col-xs-12″>File XLSX </label>
<div class=”col-md-6 col-sm-6 col-xs-12″>
<input type=”file” name=”file” class=”btn btn-default”>
</div>
<button type=”submit” class=”btn btn-success” >Upload File</button>
</div>
</form>
</div>
</div>
</div>

Buat Method Import Excel Pada Controller

Kemudian langkah selanjutnya untuk menginport data dari file excel dengan Codeigniter adalah melakukan modifikasi pada file controller pegawai pada folder “app\Controllers\Pegawai.php”, pada tahap ini saya menambahkan satu buah method dengan nama importExcel() dimana method importExcel() ini nantinya akan saya gunakan untuk mengimport data-data dari file Excel. Buka file controller “Pegawai.php” lalu tambahkan code seperti berikut :

public function import()
{
$data[‘content’] = view(‘pegawai/import_data’);
return view(‘template/_template’,$data);
}

public function importExcel()
{
$files = $this->request->getFiles(‘file’);
//$files->move(WRITEPATH.’excel’);
if($files!=”){
$files = $this->request->getFile(‘file’);
$newName = $this->filename;
$files->move(ROOTPATH . ‘excel’,$newName.’.xlsx’);
$excelReader = new PHPExcel();
$fileLocation = ROOTPATH . ‘excel/’.$this->filename.’.xlsx’;
$loadexcel = PHPExcel_IOFactory::load($fileLocation);
$sheet = $loadexcel->getActiveSheet()->toArray(null, true, true ,true);
foreach($sheet as $key=>$row){
if($key > 1){
$data= array(
‘nama’ => $row[‘A’],
‘tanggal_lahir’ => $row[‘B’],
‘pekerjaan’ => $row[‘C’],
’email’ => $row[‘D’],
‘alamat’ => $row[‘E’]
);
$db = \Config\Database::connect();
$builder = $db->table(‘pegawai’);
$builder->insert($data);
}

}
return redirect()->to(”.base_url().’/public/pegawai’);
}else{
echo ‘gagal’;
exit;
}

}

Jika semua langkah pada tutorial Codeigniter 4 Import File Excel diatas telah kita implementasi, maka saatnya kita melakukan uji coba fungsi import file Excel dengan Codeigniter 4 menggunakan library PHPExcel. Oke sekarang jalankan project Anda melalui web browser, jika berjalan dengan baik maka akan kita jumpai tombol Import pada halaman data pegawai seperti berikut :

Codeigniter 4 Import File Excel Jogjatech
Codeigniter 4 Import File Excel Jogjatech

Dari data diatas saya akan melakukan penambahan data melalui import file excel seperti berikut:

Codeigniter 4 Import Data Excel Jogjatech
Codeigniter 4 Import Data Excel Jogjatech

Lalu klik tombol Import Excel maka akan diarahkan ke halaman form import file seperti berikut :

Codeigniter 4 Form Upload File Jogjatech
Codeigniter 4 Form Upload File Jogjatech

Pilih file excel lalu klik tombol Upload File, jika berhasil maka akan dijumpai satu tambahan file excel pada root project folder excel seperti berikut :

Codeigniter 4 Uploaded File Excel
Codeigniter 4 Uploaded File Excel

Dan berikut adalah hasil tambahan data ayang berhasil di import melalui file excel.

Codeigniter 4 Import File Excel Success
Codeigniter 4 Import File Excel Success

Berikut adalah lampiran beberap file pada tutorial Codeigniter 4 Tutorial Import Data Excel kali ini.

app\Views\pegawai\index.php

<div class=”right_col” role=”main”>
<div class=””>

<div class=”row”>
<div class=”col-md-12 col-sm-12 col-xs-12″>
<div class=”x_panel”>
<div class=”x_title”>
<button class=”btn btn-sm btn-primary” data-toggle=”modal” data-target=”#formModal”><i class=”fa fa-plus”></i> Tambah</button>
<button class=”btn btn-sm btn-success export”><i class=”fa fa-file”></i> Export</button>
<button class=”btn btn-sm btn-info pdf”><i class=”fa fa-book”></i> PDF</button>
<button class=”btn btn-sm btn-info import”><i class=”fa fa-book”></i> Import Excel</button>
<div class=”clearfix”></div>
</div>
<div class=”x_content”>

<table id=”datatable” class=”table table-striped table-bordered”>
<thead>
<tr>
<th>No</th>
<th>Nama</th>
<th>Tanggal Lahir</th>
<th>Pekerjaan</th>
<th>Email</th>
<th>Alamat</th>
<th>Aksi</th>
</tr>
</thead>

<tbody>
<?php echo $table;?>
</tbody>
</table>
</div>
</div>
</div>
</div>

</div>
</div>
<!– modal –>
<div class=”modal” id=”formModal” tabindex=”-1″ role=”dialog”>
<div class=”modal-dialog modal-xs” role=”document”>
<div class=”modal-content”>
<div class=”modal-header”>
<h5 class=”modal-title”>Form Data Pegawai</h5>
<button type=”button” class=”close” data-dismiss=”modal” aria-label=”Close”>
<span aria-hidden=”true”>&times;</span>
</button>
</div>
<div class=”modal-body”>
<form name=”frm_data” id=”frm_data” method=”POST” action=”<?php echo base_url(‘public/pegawai/simpan’);?>”>
<div class=”form-group”>
<label>Nama Lengkap</label>
<input type=”text” class=”form-control” name=”nama” id=”nama” placeholder=”Nama Lengkap”>
</div>
<div class=”form-group”>
<label>Tanggal Lahir</label>
<input type=”text” class=”form-control date” name=”tanggal_lahir” id=”tanggal_lahir” placeholder=”2020-09-27″>
</div>
<div class=”form-group”>
<label>Pekerjaan</label>
<input type=”text” class=”form-control” name=”pekerjaan” id=”pekerjaan” placeholder=”Pekerjaan”>
</div>
<div class=”form-group”>
<label>E-mail</label>
<input type=”email” class=”form-control” name=”email” id=”email” placeholder=”E-mail”>
</div>
<div class=”form-group”>
<label>Alamat</label>
<input type=”text” class=”form-control” name=”alamat” id=”alamat” placeholder=”Alamat”>
</div>
<div class=”modal-footer”>
<input type=”hidden” name=”id”>
<button type=”button” class=”btn btn-secondary” data-dismiss=”modal”>Close</button>
<button type=”submit” class=”btn btn-primary”>Save</button>
</div>
</form>
</div>

</div>
</div>
</div>

app\Views\pegawai\script.php

<script>
$(document).ready(function(){
$(‘#datatable’).dataTable();
$(‘.edit’).on(‘click’,function(){
var cek = $(this).attr(‘data-id’);
$.ajax({
url:”<?php echo base_url();?>/public/pegawai/edit/”+cek,
type:”GET”,
dataType:”JSON”,
success: function(data){
$(“#frm_data”).find(“input[name=id]”).val(data.id_pegawai);
$(“#frm_data”).find(“input[name=nama]”).val(data.nama);
$(“#frm_data”).find(“input[name=tanggal_lahir]”).val(data.tanggal_lahir);
$(“#frm_data”).find(“input[name=pekerjaan]”).val(data.pekerjaan);
$(“#frm_data”).find(“input[name=email]”).val(data.email);
$(“#frm_data”).find(“input[name=alamat]”).val(data.alamat);
$(‘#formModal’).modal(‘show’);
}
});
});
$(‘.hapus’).on(‘click’,function(){
var cek = $(this).attr(‘data-id’);
$.ajax({
url:”<?php echo base_url();?>/public/pegawai/hapus/”+cek,
type: “POST”,
success: function(msg){
//jika berhasil menghapus maka akan di redirect ke url dibawah
window.location.href= “<?php echo base_url();?>/public/pegawai”;
}
});
});
//export excel
$(‘.export’).on(“click”,function() {
window.location = “<?php echo base_url(“public/pegawai/export”); ?>”;
});
//export MPDF
$(‘.pdf’).on(“click”,function() {
window.location = “<?php echo base_url(“public/pegawai/exportPdf”); ?>”;
});
//import Excel
$(‘.import’).on(“click”,function() {
window.location = “<?php echo base_url(“public/pegawai/import”); ?>”;
});
$(‘.date’).daterangepicker({
singleDatePicker: true,
calender_style: “picker_1”,
format: ‘YYYY-MM-DD’,
minDate: ‘2020-01-01’,
maxDate: ‘2020-12-31’,
});

});
</script>

app\Controllers\Pegawai.php

<?php namespace App\Controllers;
use PHPExcel;
use PHPExcel_IOFactory;
use Mpdf\Mpdf;

class Pegawai extends BaseController
{
private $filename = “import_data”;

public function index()
{
$db = \Config\Database::connect();
$builder = $db->table(‘pegawai’);
$builder->orderBy(‘id_pegawai’, ‘DESC’);
$query = $builder->get();
$hasil[‘table’] =”;
$no=1;
foreach ($query->getResult(‘array’) as $row)
{
$hasil[‘table’] .='<tr>
<td>’.$no++.'</td>
<td>’.$row[‘nama’].'</td>
<td>’.$row[‘tanggal_lahir’].'</td>
<td>’.$row[‘pekerjaan’].'</td>
<td>’.$row[’email’].'</td>
<td>’.$row[‘alamat’].'</td>
<td>
<button type=”button” class=”btn btn-xs btn-success edit” data-id=”‘.$row[‘id_pegawai’].'” title=”Edit”><i class=”fa fa-pencil”></i></button>
<button type=”button” class=”btn btn-xs btn-danger hapus” data-id=”‘.$row[‘id_pegawai’].'” title=”Hapus”><i class=”fa fa-trash”></i></button>
</td>
</tr>’;
}
$data[‘script’] = view(‘pegawai/script’);
$data[‘content’] = view(‘pegawai/index’,$hasil);
return view(‘template/_template’,$data);
}

public function simpan()
{
$db = \Config\Database::connect();
$builder = $db->table(‘pegawai’);
$data = array(
‘nama’ => $this->request->getPost(‘nama’),
‘tanggal_lahir’ => $this->request->getPost(‘tanggal_lahir’),
‘pekerjaan’ => $this->request->getPost(‘pekerjaan’),
’email’ => $this->request->getPost(’email’),
‘alamat’ => $this->request->getPost(‘alamat’)
);
if($this->request->getPost(‘id’)==”){
$builder->insert($data);
}else{
$builder->set($data);
$builder->where(‘id_pegawai’,$this->request->getPost(‘id’));
$builder->update();
}
return redirect()->to(”.base_url().’/public/pegawai’);
}

public function edit($id)
{
$db = \Config\Database::connect();
$query = $db->query(“SELECT * from pegawai where id_pegawai=$id”);
$hasil = $query->getFirstRow();
echo json_encode($hasil);
}

public function hapus($id)
{
$db = \Config\Database::connect();
$builder = $db->table(‘pegawai’);
$builder->where(‘id_pegawai’,$id);
$builder->delete();
}

public function import()
{
$data[‘content’] = view(‘pegawai/import_data’);
return view(‘template/_template’,$data);
}

public function importExcel()
{
$files = $this->request->getFiles(‘file’);
//$files->move(WRITEPATH.’excel’);
if($files!=”){
$files = $this->request->getFile(‘file’);
$newName = $this->filename;
$files->move(ROOTPATH . ‘excel’,$newName.’.xlsx’);
$excelReader = new PHPExcel();
$fileLocation = ROOTPATH . ‘excel/’.$this->filename.’.xlsx’;
$loadexcel = PHPExcel_IOFactory::load($fileLocation);
$sheet = $loadexcel->getActiveSheet()->toArray(null, true, true ,true);
foreach($sheet as $key=>$row){
if($key > 1){
$data= array(
‘nama’ => $row[‘A’],
‘tanggal_lahir’ => $row[‘B’],
‘pekerjaan’ => $row[‘C’],
’email’ => $row[‘D’],
‘alamat’ => $row[‘E’]
);
$db = \Config\Database::connect();
$builder = $db->table(‘pegawai’);
$builder->insert($data);
}

}
return redirect()->to(”.base_url().’/public/pegawai’);
}else{
echo ‘gagal’;
exit;
}

}

public function export()
{
$object = new PHPExcel();
$object->setActiveSheetIndex(0);
$kolom= [‘ID’,’Nama’,’Tanggal Lahir’,’Pekerjaan’,’Email’,’Alamat’];
$column = 0;
foreach($kolom as $field)
{
$object->getActiveSheet()->setCellValueByColumnAndRow($column, 1, $field);
$column++;
}
$db = \Config\Database::connect();
$builder = $db->table(‘pegawai’);
$query = $builder->get();
$excel_row = 2;
foreach ($query->getResult(‘array’) as $row){
$hasil = array_values($row);
$kolom = sizeof($row);
for($i=0;$i<$kolom;$i++){
$object->getActiveSheet()->setCellValueByColumnAndRow($i, $excel_row, $hasil[$i]);
}
$excel_row++;
}

$writer = PHPExcel_IOFactory::createWriter($object, ‘Excel2007’);
header(‘Content-Type: application/vnd.ms-excel’);
header(‘Content-Disposition: attachment;filename=”DataPegawai.xlsx”‘);
$writer->save(‘php://output’);

}

public function exportPdf()
{
$db = \Config\Database::connect();
$builder = $db->table(‘pegawai’);
$query = $builder->get();
$table =”;
$no=1;
foreach ($query->getResult(‘array’) as $row)
{
$table .='<tr>
<td>’.$no++.'</td>
<td>’.$row[‘nama’].'</td>
<td>’.$row[‘tanggal_lahir’].'</td>
<td>’.$row[‘pekerjaan’].'</td>
<td>’.$row[’email’].'</td>
<td>’.$row[‘alamat’].'</td>
</tr>’;
}
$mpdf = new Mpdf([‘debug’=>FALSE,’mode’ => ‘utf-8’, ‘orientation’ => ‘L’]);
$mpdf->WriteHTML(‘<table border=”1″ id=”datatable” class=”table table-striped table-bordered” style=”border-collapse: collapse;”>
<thead>
<tr>
<th>No</th>
<th>Nama</th>
<th>Tanggal Lahir</th>
<th>Pekerjaan</th>
<th>Email</th>
<th>Alamat</th>
</tr>
</thead>

<tbody>
‘.$table.’
</tbody>
</table>’);
$mpdf->Output(‘Laporan_data_pegawai.pdf’,’I’);
exit;
}

}

Oke sampai disini maka tutorial Codeigniter 4 Import data file excel menggunakan library PHPExcel telah selesai. Akhir kata semoga tutorial kali ini dapat membantu dan memberi manfaat kepada siapa saja yang membutuhkan, dan terimakasih telah berkunjung di Jogjatech.com, happy coding 🙂

LEAVE A REPLY

Please enter your comment!
Please enter your name here