Pdo Excelden Veri Çekme ve Kaydetme İşlemi

Pdo Excelden Veri Çekme ve Kaydetme İşlemi

Merhaba arkadaşlar bu dersimizde yine çok güzel bir konu ile sizlerleyim 🙂 Bir önceki excel dersimizde yanlızca veritabanımızda bulunan verileri excel dosyasına aktarmıştık o işlemde sınıf falan kullanmamıştık. Direk olduğu gibi yazdırmıştık.

Bu dersimizde ise bilgisayarımızda bulunan bir excel dosyasındaki verileri önce phpexcel sınıfını kullanarak çekicez daha sonra ise çektiğimiz excel verilerini veritabanımıza pdo ile kayıt edicez.

Evet yavaş yavaş işlemlerimize geçelim öncelikle kullanacağımız sınıfı indirmeniz gerekiyor onu buradan indirebilirsiniz.

Öncelikle hazırladığımız excel dosyamıza bir bakalım nasıl bir yapıdaymış 🙂

pdo-excelden-veri-cekme-ve-kaydetme-islemi

Excel dosyamızı hazırladığımıza göre artık sınıfımızı kullanarak exceldeki verilerimizi nasıl çekeceğiz ona bir göz atalım..

<?php

<?php
include 'Classes/PHPExcel.php'; // Excel kütüphanemizin yolunu belirtiyoruz.
$ExcelDosyasi = 'yavuz-selim.xlsx'; // Excel Dosyamızı Seçiyoruz. (Formatlar: xls, xlsx)
$ExcelOku = PHPExcel_IOFactory::load($ExcelDosyasi);
$ExcelVeriler = $ExcelOku->getActiveSheet()->toArray(null, true, true, true); //Excelde kullanacağımız sütunlarımızı seçiyoruz.
?>

Şimdi sınıfımızı kullanarak excel dosyamızdaki verilerimizi çektik peki bu verilerimizi nasıl göreceğiz..Hemen onada bi göz atalım print_r() ile yazdırdığımzda karşımız şöyle bir yapı gelecek..

<?php

<?php 
echo "<pre>";
print_r($ExcelVeriler);
echo "</pre>";
?>

Ve çağırdığımızda şöyle bir yapı bizi karşılayacak.. Gördüğünüz üzere yanlızca true değerini verdiğimiz sütunlarımız görünüyor.. Bu kısıma dikkat etmeniz gerekmektedir.

pdo-excel-veri-kaydetme

Evet gördüğünüz üzere excel dosyamızda bulunan verileri güzel bir şekilde çektik.. Şimdi çektiğimiz verileri veritabanımıza yazdırma işlemi kaldı 🙂 Hemen o işlemede geçelim 🙂

<?php

<?php 

foreach($ExcelVeriler as $ExcelAl){   
if($ExcelAl["A"] != "Başlık" && $ExcelAl["B"] != "İçerik"  &&  $ExcelAl["C"] != "Tarih"){      
$Kayit = $db->prepare("INSERT INTO veriler SET baslik=?, icerik=?, tarih=?");      
$Kayit->execute(array( $ExcelAl["A"], $ExcelAl["B"], $ExcelAl["C"] ));      
echo "#".$db->lastInsertId()."Nolu Kayıt Başarıyla Eklendi<br>";   
}}

?>

Çektiğimiz verilerimizi veriler tablomuzda ki alanlarımıza yazdırdık.Tablo isimlerini aynı yaptım kafanız karışmasın diye siz kendinize göre düzenlersiniz. burada if( $ExcelAl != “Başlık”) yapmamızın sebebi arrayden gelen ilk değerin, excelde yer alan başlıklar olmasıdır. Bunun önüne geçmek için bu kontrolü yaparak veritabanımıza kayıt edilmesini sağladık.

Not : veritabanımızdaki alanların hepsi utf8_general_ci olmalıdır.

Sonraki konuda görüşmek üzere
Kanalıma abone olmayı unutmayın 🙂..

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

Yavuz Selim

Yavuz selim