Codeigniter 3 ve PHPExcel ile excel yükleyerek veri güncelleme

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.

Ufukcan Eski

I'm a full stack developer with a passion for software development and UX. You can follow me via the various channels below:
comments powered by Disqus

Projeniz için benimle çalışmak istermisiniz ?

Web uygulamalarınızı oluşturmak veya yazılım ürününüzü geliştirmek için deneyimli bir developer'mı arıyorsunuz ? Bana ulaşmak için info@ufukcaneski.com veya iletişim sayfasındaki formu kullanın.