PHP’de excel tablosundan veri okuma

26 Kasım 2009 tarihinde Ali TOPALOĞLU tarafından yazılmış.



excelToFB-lrg
Merhaba arkadaşlar, bu yazımda sizlere bir excel tablosundan php ortamında nasıl veri okuyabileceğimizi veya mysql veri tabanına yazabileceğimizi anlatacağım. Biraz dikkatli bir şekilde kodları inceleyerek siz de her türlü excel tablosunu kullanışlı verilere dönüştürebilirsiniz.

Bana otomatik olarak veritabanına aktarmak için gerekmişti, bu vesileyle öğrenmiş oldum.

1. Adım: Buraya tıklayarak gerekli dosyaları indirin, bu kütüphane önceden hazırlanmış fonksiyonları içermektedir.

2. Adım: Aşağıdaki kodları import.php olarak kaydedip çalıştırabilirsiniz.

<?

require_once ‘reader.php’; //öncelikle kütüphanemizi tanımlıyoruz.
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding(‘CP1251′);
$data->read(‘ali.xls’); //excel dosyasının adı
//verileri okuma işlemi başlıyor

$id = $data->sheets[0]['cells'][1][1];  //1. sütundaki 1. satır
$sayi = $data->sheets[0]['cells'][1][4]; //4. sütundaki 1.
$adres = $data->sheets[0]['cells'][1][6]; //6. sütundaki 1. satır
$ilgili = $data->sheets[0]['cells'][1][7]; //7. sütundaki 1. satır

//mysql veritabanına kayıt için aşağıdaki satırı kullanıyoruz

mysql_query(“INSERT INTO tablo_ismi(ID,USER_ID,ADRES,SAYI,ILGILI)VALUES(‘$id’,'1′,’$adres’,'$sayi’,'$ilgili’)”);

//gerekli veritabanı bağlantısını önceden yapmış olmanız gerekiyor.

// tüm satırları okumak için aşağıdaki kodu kullanabilirsiniz.

for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
$id= $data->sheets[0]['cells'][$i][1];
$sayi= $data->sheets[0]['cells'][$i][4]; //4. sütundaki 1. satır
$adres= $data->sheets[0]['cells'][$i][6]; //6. sütundaki 1. satır
$ilgili= $data->sheets[0]['cells'][$i][7]; //7. sütundaki 1. satır
print_r($urunkodu); //bu şekilde tüm urunkodlarını bastırabilirsiniz

//bu şekilde tüm kayıtları veritabanına kaydedebilirsiniz.
}

?>

Herhangi bir sorunla karşılaşırsanız bana mail göndererek danışabilir veya aşağıdaki yorum kısmından sorularınızı iletebilirsiniz.

Fırsat buldukça yardımcı olmaya çalışacağım.

Son bir not: İlgili ütüphane ile yukarıda kodları verilen import.php dosyalarının sunucu üzerinde aynı dizinde bulunması gerekmektedir.



   Bu yazı Ali TOPALOÄžLU tarafından PHP, Programlama kategorisine eklenmiÅŸtir.
  etiket , , , , olarak etiketlenmiÅŸtir.
  rss Bu yazı toplam  1.004 defa okunmuÅŸ.
  yazdir Buraya tıklayarak sayfayı yazıcıdan çıkartabilirsiniz.
  Yorum yapcam Yazıya yorum yapabilir, yapılan yorumları RSS 2.0 ile takip edebilirsiniz.
EkleBunu Sosyal Paylaþým Butonu


Bu yazıya 8 tane yorum yapılmış

  1. Mustafa Hepekiz

    Fatal error: Class ‘Spreadsheet_Excel_Reader’ not found in hatası almaktayım nerede hata yapıyor olabilirim? TeÅŸekkürler


  2. Ali TOPALOÄžLU

    reader.php’yi yanlış include etmenizden kaynaklanıyor olsa gerek. reader.php’yi import.php ile aynı dizinde çalıştırmanız gerekiyor.


  3. KORAY ÖZÇAĞ

    Öncelikle çalışmanızdan dolayı teÅŸekkür ederim. Verileri sorunsuz alıyor fakat mysql’e aktardğınıda türkçe karakterleri almıyor. Sebebi ne olabilir?


  4. Ali TOPALOÄžLU

    Veritabanı karakter kodlamasından dolayı olabilir. Tam emin değilim görmeden bir şey diyemem ama veritabanı karakter setini Türkçe karakterleri içeren bir şeye dönüştürürseniz hallolacaktır diye tahmin ediyorum.


  5. mahmut

    selam çok acil lütfen biliyorsanız erken cevap verin benim sorunum şu excelde tarih ve saat sütunlarım var aktardıktan sonra tarıhe 1 gün ekliyor saatten se 1 dk çıkarmış olarak aktarıyor saçma ama öyle. yapmalıyım


  6. Emre

    Merhaba,

    Peki Excel’den gerçek zamanlı veri de alabilir miyiz? Yani Excel’deki tablomuzdaki veriler gerçek zamanlı olarak deÄŸiÅŸiyorsa bunu nasıl veritabanına alırız?

    Şimdiden teşekkürler.


  7. TAN

    merhaba
    The filename xxx.xls is not readable hatası alıyorum neden olabilir.


  8. Ali TOPALOÄžLU

    Merhaba Emre, excelden gerçek zamanlı veri alabilirsin evet fakat bunun için sunucuda bulunan excel dosyasını güncelledikten sonra php kodlarını tekrar çalıştırıp eski verilere eklenen yeni satırları okuyabilmen gerekiyor. Apache’nin cronjob özelliÄŸi ile bu iÅŸlemi otomatiÄŸe baÄŸlayabilirsin. Mesela her saat başı php dosyasını 1 kere çalıştırma komutu verebilirsin. Tabi ki senin iÅŸlem yapan php dosyan da excel dosyasından sadece güncellenmiÅŸ veya yeni eklenmiÅŸ verileri çekiyor olması gerekli.

    Merhaba Tan, hatanın nedeni sunucuya yüklediğin excel dosyasını php komutlarının okuma izni olmaması olduğunu tahmin ediyorum. Eğer sunucu üzerinde excel dosyasının izinlerini okunabilir olarak ayarlarsan bu sorunun düzeleceğini söyleyebilirim.


Mesaj Yaz