PHP ile Excel dosyasından veri çekme

php-ile-excel-dosyasindan-veri-cekme

Merhaba

Bazen sitenize ekleyeceğiniz verilerin Excel’den çekilmesi gerekir birkaç satır olsa kopyala yapıştır yaparım dersiniz gel gör ki iş bazen yüzlerce satır verinin aktarılması olur ve bu durumda imdadınızaPhpExcel  kütüphanesi yetişir. Bu yazımın konusu da bu; bir eğitim sitesinin benden online sınav scripti istemesi sonucu ortaya çıktı. Bu yazı bir seri halinde olacak şimdilik kafamda ne kadar devam edeceğime dair kesin bir kararım yok ancak birkaç yazı daha olacağı kesin gibi , lafı fazla uzatmadan konuya gireyim.

Öncelikle veriyi alacağımız tabloyu excel’de oluşturalım. Benim konum excel ve php kullanarak sınav scripti hazırlamak olduğu için tablomda sorular ve cevaplar var, ama siz kendi ihtiyaçlarınıza uygun hale getirebilirsiniz tabloyu resimdeki gibi yazalım.


Tablomuz hazır olduğuna göre artık php sayfamıza çekebiliriz. Bu işlem için öncelikle buradan indireceğiniz PhpExcel  kütüphanesini projemize dahil ediyoruz.  Bu İşlemden sonra kodlarımızı yazalım ve gerekli ayarları yapıp verileri çekeceğimiz excel dosyasını da projemize dahil edelim. Kodlar aşağıda,

getActiveSheet()->toArray(null, true, true, true);
?>

Kütüphanemizi dahil ettik , excel  dosyamızı da okutmak için bir değişkene aktardık şimdi yapmamız gereken iki şey var biri verilerimizi yazdıracağımız bir tablo, ikincisi ise foreach  döngüsü ile ekrana basmak ancak bir sorunumuz var excel dosyasında ilk satırda başlıklarımız vardı ve biz bunları sayfaya basmak istemiyorum birde benim dosyamda sınav cevap şıkları var ve bu şıklar dört adet olmasına rağmen beş seçenekli olma ihtimali sebebiyle bir tanede boş sütunumuz var , başlıkları çekmek istemediğim için bir (if)koşulu ile bunları da ayıklıyorum ki gereksiz kirlilik yapmasın. Ayrıca tablo da ki verilerin arasında html kodları olması ihtimali sebebiyle ki benim sınav soruları ve cevaplarında böyle kodlar var, bunları birde htmlspecialchars fonksiyonundan geçiriyorum.

İlk olarak html şablonumuzu oluşturup içine bir tablo yerleştiriyorum. Tabloyu excel dosyama göre düzenleyip satırları foreach  döngüsü arasında ekrana bastırıyorum. Kodlar aşağıda.

getActiveSheet()->toArray(null, true, true, true);?>

excelden veri çekme

<table>
<thead>
<tr>
<th>>#</th>
<th>Soru</th>
<th>A Şıkkı</th>
<th>B Şıkkı</th>
<th>C Şıkkı</th>
<th>D Şıkkı</th>
<th>E Şıkkı</th>
<th>Doğru Şık</th>
</tr>
</thead>
<tbody>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>

Buraya kadar basit bir şekilde excel tablosundan aldığımız verileri html sayfada ekrana tablo içinde yazdırdık , herhangi bir css özelliği eklemedim ki kafa karışıklığı olmasın. Eğer Anlatılanları doğru yaptıysanız ekran görüntüsü resimdeki gibi olması lazım,

 

Bir sonraki yazımda bu excel tablosu  ile sınav scriptini anlatmayı düşünüyorum .
 

Yorum ve sorularınız olursa aşağıya yazmaktan çekinmeyin ayrıca sosyal medyada paylaşırsanız hem diğer insanların hem benim işime yarar J