Merhaba arkadaşlar özellikle web uygulamaları yapan arkadaşlar için faydalı olacağını düşündüğüm bir çözümü burada paylaşmak istedim.
Exel dosyamızdaki verilerimizi php ile okuyup Mysql veri tabanımıza veri girişi sağlayacağız.
Öncelikle Class yapımızı Buradan indiriyoruz.
rar dosyasını açtığımızda aşağıdaki gibi Classes klasörümüz ve örnek yapılar gelecek buradan sadece Classes klasörümüzü alıp uygulamayı çalıştıracağımız ana dizinimize atıyoruz.
Aynı dizinimizde yukle.php adında yükleme yapacağımız php dosyamızı oluşturuyoruz.
Bir de dizinde exel dosyalarımızın yükleneceği uploads klasörürümüzü oluşturuyoruz.
Buradaki çalışma mantığı php ile dosyayı sunucuya upload edip yüklenen exel dosyasından verileri php ile okumak olacaktır. İşleminiz tamamlandığında klasörden dosyanızı silebilirsiniz.
Örnekte exel verileri adresdefteri isimli bir bir tabloya aktarılacak veritabanı bağlantımızı ve taplomuzu aşağıdaki verilere göre şekillendirmeyi unutmayalım.
Gelelim yukle.php nin yapacağı işlemlere.
if(isset($_FILES['dosya'])){
$hata = $_FILES['dosya']['error'];
if($hata != 0) {
echo 'Yüklenirken bir hata gerçekleşti.';
}else {
$boyut = $_FILES['dosya']['size']; //Yüklenecek Exel dosyamızın Boyutunu Alıyoruz.
if($boyut-> (1024*1024*3)){ //Yüklenecek Exel dosyamıza boyut sınırlaması veriyoruz.
echo 'Dosya 3MB den büyük olamaz.';
}else{
//Dosya tipimizi bu kısımda kontrol ettik.
$tip = $_FILES['dosya']['type'];
$isim = $_FILES['dosya']['name'];
$uzanti = explode('.', $isim);
$uzanti = $uzanti[count($uzanti)-1];
if(($uzanti== 'xls')){
$dosya = $_FILES['dosya']['tmp_name'];
copy($dosya, 'upload/' . $_FILES['dosya']['name']);
echo 'Verileriniz aktarılıyor...';
//Dosyamızı sunucuya yükledik. Sıra aktarım işleminde.
error_reporting(E_ALL);
include 'Classes/PHPExcel/IOFactory.php'; //Clasımızı çağırıyoruz. Bundan sonrası Exel dosyamızı tanımak ve yapısını çözmek onun işi.
$inputFileName = 'upload/'.$_FILES['dosya']['name'];
//Clasımıza Exel dosyamızın bulunduğu konumu söylüyoruz.
$objPHPExcel = PHPExcel_IOFactory::load($inputFileName);
$excelSutunlar = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true);
$i=0; // İşlem Sonucunda Exel verilerimiz ile karşılaştırabilmek için satır sayısını bir değişkene atıyoruz.
foreach($excelSutunlar as $excelSutun){
$i++;
//Sütun isimlerimize göre exel verilerimizi değişkenlerine atıyoruz.
$adi = mysql_escape_string($excelSutun['A']);
$soyadi = mysql_escape_string($excelSutun['B']);
$eposta = mysql_escape_string($excelSutun['C']);
$adres = mysql_escape_string($excelSutun['D']);
//Verilerimizi döngü içerisinde veritabanımıza yazıyoruz.
$veriEkle=mysql_query("Insert into adresdefteri(adi,soyadi,eposta,adres)values('$adi','$soyadi','$eposta','$adres')");
}
}else{
echo 'Yanlızca Exel dosyaları! .xls formatında';
}
echo $i." adet veri aktarıldı...";
}
}
}