Bismillah
Sekedar catatan kecil gw ajah, karena keseringan digunakan untuk update data master yang ribet input lewat interface, mending dalam format excel, lebih cepet.
Pertama, buat fungsi seperti ini:
function disposisi_upload()
{
$this->load->library(array('PHPExcel','PHPExcel/IOFactory'));
if ($this->input->post('save')) {
$type = explode('.', $_FILES["import"]["name"]); // data file
$type = strtolower($type[count($type)-1]); // data type like .jpg
// exit(dump($type));
$inputFileName = "./assets/upload/".uniqid(rand()).'.'.$type; // hash unik
if(in_array($type, array("xls", "xlsx"))) {
if(is_uploaded_file($_FILES["import"]["tmp_name"])) {
if(move_uploaded_file($_FILES["import"]["tmp_name"],$inputFileName)) {
// Read your Excel workbook
try {
$inputFileType = IOFactory::identify($inputFileName);
$objReader = IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($inputFileName);
} catch(Exception $e) {
die('Error loading file "'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage());
}
// Get worksheet dimensions
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow();
$highestColumn = $sheet->getHighestColumn();
// Loop through each row of the worksheet in turn
for ($row = 2; $row <= $highestRow; $row++) { // Read a row of data into an array
$rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row,
NULL,
TRUE,
FALSE);
// Insert row data array into your database of choice here
$data = array(
"nama" => $rowData[1][3],
"kode_org" => $rowData[1][2],
);
// exit(dump($rowData[0][1]));
$this->db->insert("sdm_master_jabatan_detail",$data); // exit(show_last_query());
}
echo "Import Success, tunggu sebentar..";
}
}
}
}
$this->setFlash('Data eksel berhasil diimport!', 'alert-success');
redirect('office/upload_disposisi','refresh');
}
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function disposisi_upload() | |
{ | |
$this->load->library(array('PHPExcel','PHPExcel/IOFactory')); | |
if ($this->input->post('save')) { | |
$type = explode('.', $_FILES["import"]["name"]); // data file | |
$type = strtolower($type[count($type)-1]); // data type like .jpg | |
// exit(dump($type)); | |
$inputFileName = "./assets/upload/".uniqid(rand()).'.'.$type; // hash unik | |
if(in_array($type, array("xls", "xlsx"))) { | |
if(is_uploaded_file($_FILES["import"]["tmp_name"])) { | |
if(move_uploaded_file($_FILES["import"]["tmp_name"],$inputFileName)) { | |
// Read your Excel workbook | |
try { | |
$inputFileType = IOFactory::identify($inputFileName); | |
$objReader = IOFactory::createReader($inputFileType); | |
$objPHPExcel = $objReader->load($inputFileName); | |
} catch(Exception $e) { | |
die('Error loading file "'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage()); | |
} | |
// Get worksheet dimensions | |
$sheet = $objPHPExcel->getSheet(0); | |
$highestRow = $sheet->getHighestRow(); | |
$highestColumn = $sheet->getHighestColumn(); | |
// Loop through each row of the worksheet in turn | |
for ($row = 2; $row <= $highestRow; $row++) { // Read a row of data into an array | |
$rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, | |
NULL, | |
TRUE, | |
FALSE); | |
// Insert row data array into your database of choice here | |
$data = array( | |
"nama" => $rowData[1][3], | |
"kode_org" => $rowData[1][2], | |
); | |
// exit(dump($rowData[0][1])); | |
$this->db->insert("sdm_master_jabatan_detail",$data); // exit(show_last_query()); | |
} | |
echo "Import Success, tunggu sebentar.."; | |
} | |
} | |
} | |
} | |
$this->setFlash('Data eksel berhasil diimport!', 'alert-success'); | |
redirect('office/upload_disposisi','refresh'); | |
} |
Kedua, buat form upload seperti ini:
<div class="col-xs-12 col-sm-12">
<div class="box">
<div class="box-content">
<h3 class="page-header"><?php echo $title;?></h3>
<form class="form-horizontal well" action="<?=base_url('officeaction/disposisi_upload');?>" method="post" enctype="multipart/form-data" role="form">
<div class="form-group">
<div class="col-sm-3">
<td><input type="file" id="import" name="import" multiple="multiple"></td>
</div>
<div class="col-sm-3">
<input type="submit" class="btn btn-primary" value="Import" name="save" />
</div>
</div>
</form>
</div>
</div>
</div>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<div class="col-xs-12 col-sm-12"> | |
<div class="box"> | |
<div class="box-content"> | |
<h3 class="page-header"><?php echo $title;?></h3> | |
<form class="form-horizontal well" action="<?=base_url('officeaction/disposisi_upload');?>" method="post" enctype="multipart/form-data" role="form"> | |
<div class="form-group"> | |
<div class="col-sm-3"> | |
<td><input type="file" id="import" name="import" multiple="multiple"></td> | |
</div> | |
<div class="col-sm-3"> | |
<input type="submit" class="btn btn-primary" value="Import" name="save" /> | |
</div> | |
</div> | |
</form> | |
</div> | |
</div> | |
</div> |
Jangan lupa untuk load library, kalo belum ada silahkan download/ clone aja dialamat ini:
https://github.com/mdestafadilah/excel-upload-codeigniter
have a nice day!