Merhabalar,
Öncelikle PHPExcel eklentimizi indiriyoruz.
Bize lazım olan sadece Classes
klasörü. Classes
klasörünün içindekileri kopyalayıp application/third_party
klasörünün içine yapıştırıyoruz.
application/libraries klasörünün içine Excel.php adında bir dosya oluşturuyoruz ve içine aşağıdaki kodları yerleştiriyoruz.
Controller dosyamız şu şekilde olmalı;
if(@$_FILES["excel"]) {
$allowedFileType = array('application/vnd.ms-excel','application/xls','application/xlsx','application/vnd.openxmlformats- officedocument.spreadsheetml.sheet','text/csv');
if(in_array($_FILES["excel"]["type"],$allowedFileType)){
$targetPath = './upload/excel/'.$_FILES['excel']['name'];
move_uploaded_file($_FILES['excel']['tmp_name'], $targetPath);
$this->load->library('Excel');
$objPHPExcel = PHPExcel_IOFactory::load($targetPath);
$cell_collection = $objPHPExcel->getActiveSheet()->getCellCollection();
foreach($cell_collection as $cell){
$column = $objPHPExcel->getActiveSheet()->getCell($cell)->getColumn();
$row = $objPHPExcel->getActiveSheet()->getCell($cell)->getRow();
$data_value = $objPHPExcel->getActiveSheet()->getCell($cell)->getValue();
if ($row != 1) {
$arr_data[$row][$column] = $data_value;
}
}
$total_row = count($arr_data);
$arr_data = array_slice($arr_data, intval(@$_POST["num"]), 25);
foreach ($arr_data as $key => $value) {
$this->Admin_model->update_dealer($value);
}
$this->session->set_flashdata("success_message", "Yükleme başarılı!");
}else{
$this->session->set_flashdata("error_message", "Yükleme başarısız!");
}
redirect($_SERVER['HTTP_REFERER']);
}
}
view dosyamızda bu şekilde olacak;
session->flashdata('success_message'))): ?>
×
session->flashdata('success_message'); ?>
session->flashdata('error_message'))): ?>
×
session->flashdata('error_message'); ?>
Yükle
Şimdi sıra model dosyamızı yazmada burada dikkat edilmesi gereken nokta hangi sütunun hangi veriye denk olması.
public function excel_yukle($post)
{
$data = array();
if(isset($post['A'])) $data['id'] = $post['A'];
if(isset($post['B'])) $data['uye_name'] = $post['B'];
if(isset($post['C'])) $data['phone'] = $post['C'];
if(isset($post['D'])) $data['email'] = $post['D'];
$this->db->where('id',$post['A']);
$records = $this->db->update('uyeler',$data);
}
Bu şekilde mevcutta olan verilerimizi excel ile yükleyip güncellemiş oluruz. Aklınıza takılan herhangi bir sorunuz olursa aşağıda yorumlar kısmında sorularınızı sorabilirsiniz veya iletişim sayfasından bana ulaşabilirsiniz.
comments powered by Disqus