Jika kalian seorang pengembang website atau lebih kerennya sering disebut web developer mungkin akan membutuhkan suatu cara untuk mengimport data kedalam database dalam jumlah bnyak karena ini sangat penting jika project anda membangun suatu sistem untuk mengolah data,
tidak mungkin anda harus insert data satu per satu jika data tersebut ada ribuan kebayangkan bagaimana capeknya. Saat ini setiap perusahaan sudah terkomputerisasi jadi data yang tadi nya Hard copy sekarang sudah banyak diolah menjadi Soft copy dalam format Excel atau yang lainnya guna untuk mempermudah dalam mencari data sehingga tidak takut untuk hilang atau rusak. Untuk membuat Import data Excel ke database maka kita membutuhkan library yang bernama PHPExcel untuk lebih lanjut mari kita buat project nya.
Bahan yang diperlukan
- Framework Codeigniter
- Library PHPExcel
- Untuk pengatruran PHPEXCEL pada codeigniter disini
1. Set Framework Codeigniter sesuai selera, buat lah suatu database dengan format tabel seperti berikut.
CREATE TABLE IF NOT EXISTS `tbimport` (
`No` int(5) NOT NULL AUTO_INCREMENT,
`NamaKaryawan` varchar(50) NOT NULL,
`Alamat` varchar(150) NOT NULL,
`Posisi` varchar(150) NOT NULL,
`status` varchar(50) NOT NULL,
PRIMARY KEY (`No`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
2. Extract library PHPExcel copy folder PHPExcel dan PHPExcel.php pada folder Classes simpan pada htdocs/Project/application/libraries/.
3. Buatlah satu buah file excel sebagai sample.
4. Buat lah folder dengan nama upload pada root directory untuk menyimpan file upload.
5. Sekarang tahap koding buatlah sebuah controller dengan nama import.php dengan class import
class Import extends CI_Controller {
function __construct(){
parent::__construct();
$this->load->library(array('PHPExcel','PHPExcel/IOFactory'));
}
public function index() {
$this->load->view('v_import');
}
public function upload(){
$fileName = $this->input->post('file', TRUE);
$config['upload_path'] = './upload/';
$config['file_name'] = $fileName;
$config['allowed_types'] = 'xls|xlsx|csv|ods|ots';
$config['max_size'] = 10000;
$this->load->library('upload', $config);
$this->upload->initialize($config);
if (!$this->upload->do_upload('file')) {
$error = array('error' => $this->upload->display_errors());
$this->session->set_flashdata('msg','Ada kesalah dalam upload');
redirect('Welcome');
} else {
$media = $this->upload->data();
$inputFileName = 'upload/'.$media['file_name'];
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());
}
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow();
$highestColumn = $sheet->getHighestColumn();
for ($row = 2; $row <= $highestRow; $row++){
$rowData = $sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row,
NULL,
TRUE,
FALSE);
$data = array(
"No"=> $rowData[0][0],
"NamaKaryawan"=> $rowData[0][1],
"Alamat"=> $rowData[0][2],
"Posisi"=> $rowData[0][3],
"Status"=> $rowData[0][4]
);
$this->db->insert("tbimport",$data);
}
$this->session->set_flashdata('msg','Berhasil upload ...!!');
redirect('Import');
}
}
}
6. Buatlah file pada folder view dengan nama file v_import.php
<div style="margin-top: 20px;">
</div>
<form action="<?php echo base_url();?>import/upload/" enctype="multipart/form-data" method="post">
<input name="file" type="file" />
<input type="submit" value="Import File" />
</form>
<?php echo $this->session->flashdata('msg'); ?>
jika berhasil maka data akan tersimpan dalam database mysql jika tidak ada atau error check kembali pengaturan codeigniter dan perhatikan script, so belajar jangan asal copas tapi pahami dan resapi.
Semoga bermanfaat.