php excel to mysql
Bu yazımda son dönemde geliştirdiğim projelerde ihtiyacım olduğundan araştırıp öğrendiğim excel dosyasını mysql veritabanına aktarma konusunda olucak.
Excel verilerini php üzerinden okumak için öncelikle hazırlanmış bir kütüphane kullanacağız.
require_once 'Excel/reader.php'; //öncelikle kütüphanemizi tanımlıyoruz.
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding('CP1251');
$data->read('resimler.xls'); //excel dosyasının adı
//verileri okuma işlemi başlıyor
$urunkodu = $data->sheets[0]['cells'][1][1]; //1. sütundaki 1. satır
$urunadi = $data->sheets[0]['cells'][1][2]; //2. sütundaki 1. satır
$urunfiyati = $data->sheets[0]['cells'][1][4]; //4. sütundaki 1. satır
$urunkategorisi = $data->sheets[0]['cells'][1][5]; //5. sütundaki 1. satır
$urungrubu = $data->sheets[0]['cells'][1][6]; //6. sütundaki 1. satır
//bu şekilde verileri tektek çekebilirsiniz.
// tüm satırları okumak için aşağıdaki kodu kullanabilirsiniz.
for ($i = 1; $i <= $data->sheets[0]['numRows']; $i++) {
$urunkodu = $data->sheets[0]['cells'][$i][1];
$urunadi = $data->sheets[0]['cells'][$i][2]; //2. sütundaki 1. satır
$urunfiyati = $data->sheets[0]['cells'][$i][4]; //4. sütundaki 1. satır
$urunkategorisi = $data->sheets[0]['cells'][$i][5]; //5. sütundaki 1. satır
$urungrubu = $data->sheets[0]['cells'][$i][6]; //6. sütundaki 1. satır
print_r($urunkodu); //bu şekilde tüm urunkodlarını bastırabilirsiniz
//bu şekilde bulunan tüm değerleri değişkenlere atayabilirsiniz.
mysql_query("INSERT INTO urunler(urun_kodu,urun_adi,urun_fiyati,urun_kategorisi,urun_grubu)VALUES("$urunkodu","$urunadi","urunfiyati","urunkategorisi","urungrubu");
//bu şekilde tüm kayıtları veritabanına kaydedebilirsiniz.
}
Örnek data :

faydalı olması ümidiyle.
Saygılarımla,



Seyfullah | Mayıs 29th, 2009 at 18:41 #
Türkçe karakter sorunu var. UTF-8 encoder ile denedim yine olmadı.
Yapanlar açıklarsa iyi olur.
Mustafa TOSUN | Temmuz 23rd, 2009 at 02:00 #
Selamlar,
Turkce karakter sorununu su sekilde cozebilirsin,
$data->setOutputEncoding(‘UTF-8′);
———–
ve asagidaki function la ciktilari kontrol ediyoruz, tr karakter sorunu olan varsa degistirsin diyerek,, ben buyuk kucuk harf ayrimi yapmadim,,,
————
function tr_($gelen){
$karakterset = array(“\xf6″ => ‘Ö’,”\xd6″ => ‘Ö’,”\xfe” => ‘Ş’,”\xfd” => ‘ı’,”\xde” => ‘Ş’,”\xf0″ => ‘Ğ’,”\xdd” => ‘İ’,”\xd0″ => ‘Ğ’,”\xfc” => ‘Ü’,”\xdc” => ‘Ü’,”\xe7″ => ‘Ç’,”\xc7″ => ‘Ç’);
$deger = strtr($gelen,$karakterset);
return $deger;
}
—————-
ve tabiki ornek olarak function cagirilmali,,
—————
echo tr_($urunkodu);
Saygilarimla,,,
ömer | Ağustos 14th, 2009 at 16:28 #
arkadaşlar bu kadar zahmete gerek yok
$data->setOutputEncoding(‘CP1251′); yerine aşağıdakini yazdım direk türkçe problemi kalktı bende çok güzel bozuk karakter yok sadece ISO-8859-9 yazmam yettii.
$data->setOutputEncoding(‘ISO-8859-9′);
TAN | Şubat 17th, 2010 at 10:24 #
The filename xxx.xls is not readable diye hata alıyorum neden olabilir acaba
TAN | Şubat 17th, 2010 at 14:14 #
Sorunu cözdüm: Eğer xls içinde biçimlendirilmemiş data varsa (xls dosyası başka bir db den export ise) sorun çıkabiliyor dosya açılıp yeniden kaydedilince sorun gideriliyor.
Suphi | Şubat 23rd, 2010 at 03:28 #
sorumlu davranışınız için teşekkürler. Aynı sorunla karşılaşanlar için oldukça yardımcı olacaktır.
derviş | Mart 8th, 2010 at 22:37 #
The filename /tmp/phpR1FGG8 is not readable
bu hatayı alıyorum izinleri verdim ayardımcı olursanız sevinirim
Şenol | Nisan 6th, 2010 at 14:39 #
Fazla sayıda veri olduğu zaman çok yavaş çalışıyor. Örneğin; 15000.
Anonim | Kasım 9th, 2010 at 15:18 #
[...] [...]