Php ile Excel'den MySQL Veritabanına Import Etme İşlemi

İnsanların internette en çok aradığı fakat bir türlü doğru sonuca ulaşamadığı Excel dosyasından MySQL'e veri aktarımını işleyeceğiz.

Merhaba Arkadaşlar , 

İlk olarak tekrar söylemek istiyorum  ben buradaki dersi çözülmüş bir işlem olarak ekliyorum ihtiyacı olan insanlar için lütfen mazur görün hatalar olduysa amacım bir kişi bile olsa çözümü bulması... geliştirebilir isterse

ilk olarak kütüphaneyi indirmemiz gerekiyor linkten  PHP Excell Eklentisi

Burada ben isimler adında bir tablo oluşturdum siz kendinize göre uyarlayabilirsiniz basit olsun diye bu şekilde yaptım...

CREATE TABLE IF NOT EXISTS `Isimler` (  
  `id` int(11) NOT NULL AUTO_INCREMENT,  
  `Adi` varchar(25) NOT NULL,  
  `Soyadi` varchar(25) NOT NULL,  
  PRIMARY KEY (`excel_id`)  
 ) ENGINE=MyISAM DEFAULT CHARSET=UTF-8 AUTO_INCREMENT=1 ; 

Daha sonrasında ise indirdiğiniz klasörün içerisinde index.php adında bir dosya oluşturup içerisine aşağıdaki kodları ekleyelim 

<?php  
//bu sistem yusufkoken.com.tr tarafından alıntı yapılarak kullanıcılara aktarılmıştır...
 $connect = mysqli_connect("localhost", "root", "", "test_db");  
 include ("PHPExcel/IOFactory.php");  
 $html="<table border='1'>";  
 $objPHPExcel = PHPExcel_IOFactory::load('yusuf.xlsx'); 
//excell dosyasını yukarda ekliyoruz. ister iseniz mysql den file upload ilede yapabilirsiniz
//bir sonraki çalışmada php upload ile yapacağız. 
 foreach ($objPHPExcel->getWorksheetIterator() as $worksheet)   
 {  
      $highestRow = $worksheet->getHighestRow();  
      for ($row=2; $row<=$highestRow; $row++)  
      {  
           $html.="<tr>"; 
           //Burada excell den aldığınız sütünlara göre işlem yaptırıyoruz siz excelinizde yerlere göre uyarlarsanız sıkıntı olmaz 
           $Adi= mysqli_real_escape_string($connect, $worksheet->getCellByColumnAndRow(0, $row)->getValue());  
           $Soyadi = mysqli_real_escape_string($connect, $worksheet->getCellByColumnAndRow(1, $row)->getValue());  
           $sql = "INSERT INTO Isimler(Adi, Soyadi) VALUES ('".$Adi."', '".$Soyadi."')";  
           mysqli_query($connect, $sql);  
           $html.= '<td>'.$Adi.'</td>';  
           $html .= '<td>'.$Soyadi.'</td>';  
           $html .= "</tr>";  
      }  
 }  
 $html .= '</table>';  
 echo $html;  
 echo '<br />Tüm Datalar Eklendi...';  
 ?>

Yukardaki sistemde sabit excell ile yapmıştım birde onu file upload ile yaptım oda aşağıdaki kodlarda 

<?php 

$islem=$_GET["islem"];

if($islem=="yukle"){ 
 
if(isset($_FILES['dosya']))
{
    if($_FILES['dosya']['error'] != 0)
    {
        if($_FILES['dosya']['size'] == 0)
            echo 'Lütfen Dosya Seçiniz';
        else
            echo 'Dosya Yüklenmemiş';
    }
    else
    {
        if($_FILES['dosya']['size'] > (1024*1024*10))
            echo '8MB dan Büyük Dosya Atmaya Çalışıyonuz.';
        else
        {
            $myfiletype = $_FILES['dosya']['type'];
            $resim = substr($_FILES['dosya']['name'],-5);
			$isim= rand(1,999999) . $resim;
            $myfileextension = explode('.', $isim);
            $myfileextension = $myfileextension[count($myfileextension)-1];
             
                $dosya = $_FILES['dosya']['tmp_name'];
                copy($dosya, '/' . $isim);
               
				$connect = mysqli_connect("localhost", "root", " ", "test_db");  
				
				include ("Classes/PHPExcel/IOFactory.php");  
 $html="<table border='1'>";  
 $objPHPExcel = PHPExcel_IOFactory::load($isim);  
 foreach ($objPHPExcel->getWorksheetIterator() as $worksheet)   
 {  
      $highestRow = $worksheet->getHighestRow();  
      for ($row=2; $row<=$highestRow; $row++)  
      {  
           $html.="<tr>";  
           $adi = mysqli_real_escape_string($connect, $worksheet->getCellByColumnAndRow(0, $row)->getValue());  
           $soyadi = mysqli_real_escape_string($connect, $worksheet->getCellByColumnAndRow(1, $row)->getValue()); 
		    
		  
           $sql = "INSERT INTO `isimler` (`adi`, `soyadi`) VALUES ('".$adi."', '".$soyadi."')";  
           mysqli_query($connect, $sql); 
		    
           $html.= '<td>'.$adi.'</td>';  
           $html .= '<td>'.$soyadi.'</td>';  
		    
           $html .= "</tr>";  
      }  
 }  
 $html .= '</table>';  
 echo $html;  
 echo '<br />Data Inserted';
  
	 		 
	}
}

}
}
  
?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
 
    
</head>

<body>
 
			<form action="excel-ekle.php&islem=yukle" id="form1" name="form1" method="post"   enctype="multipart/form-data">
				 
				   
                
                 <div class="form-group">
					<label class="col-sm-2 control-label">Excell Dosyasını Seç</label>
				   <div class="col-sm-8">
				      
					  <input type="file" name="dosya" id="dosya"  class="form-control"/>
				   </div>
				</div>
                
                
                
              
				 
			<div class="row">
				<div class="col-sm-8 col-sm-offset-2">
					<button class="btn-primary btn" type="submit">Yükle</button>
					 
				</div>
			</div>
		 
			</form>
		 

</body>
</html> 

Projenin Bitmiş Haline Buradan  Ulaşabilirsiniz.

Yusuf yalçın Köken
ASP.NET / C# Yazılım uzmanlığını bitirmiş ama PHP de Projeler Geliştiren Egzantirik Biri
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git