Merhaba Arkadaşlar,
Eski dosyalarımı gezerken zamanında bir müşterim benden php deki verileri excel'e aktarmamı istemiş. Benden istenmişse belki başka kişilerden de istenir diyerek sizlerle de paylaşmak istedim.

Ben örnek daha anlaşılır olsun diye veritabanı kullanmadım onun yerine dizi kullandım. Sonuçta mantık aynı benim for döngüsü kullandığım yerde size while döngüsü kullanırsanız aynı sonucu alırsınız.

Hadi birlikte php ile excele veri aktaralım



index.php





<br/> Excel'e Aktar <br/>










$No = array("153", "1258", "685", "1837");
$Name = array("Ahmet", "Ali", "Mehmet", "Furkan");
$SurName = array("Gezer", "Sormaz", "Avşar", "Kandemir");
$Avarage = array("45", "80", "60", "95");
for ($x=0;$x<=3;$x++) {
?>

echo ''.''.''.'';
?>

}
?>
No Ad Soyad Ortalama
'. $No[$x].''. $Name[$x].''. $SurName[$x].''. $Avarage[$x].'

Excel'e aktar





Gerekli açıklamalar zaten kodların içinde yorum satırı olarak mevcuttur.

Excel.php



$Time= date("Y-m-d h:i:sa"); // Şu anki zamanı alıyorum dosya ismine ekleyeceğim

header("Content-Type: application/octet-stream");
header("Content-Transfer-Encoding: binary"); // türkçe kararkterler bozuk olacağı için çevirme yapacağım
header('Content-Disposition: attachment; filename = "Rapor '.$Time.'.xls"'); // excel dosyama isim veriyorum time ise dosya adları sürekli farklı olsun diye.
header('Pragma: no-cache');



/* Burada verilerimi diziye atıyorum dilerseniz siz veritabanından çekebilirsiniz. */
$No = array("153", "1258", "685", "1837");
$Name = array("Ahmet", "Ali", "Mehmet", "Furkan");
$SurName = array("Gezer", "Sormaz", "Avşar", "Kandemir");
$Avarage = array("45", "80", "60", "95");
/* Gerekli verilerimi aldım */
$data = 'Öğrenci No'. "\t". 'Ad'. "\t". 'Soyad'. "\t". 'Ortalama'. "\n" ; // Burada \t kısmı bir sonraki kolon / sütuna geçiş yapıyor. \n ise satıra
echo chr(255).chr(254).iconv("UTF-8", "UTF-16LE//IGNORE", $data); // Buradaki karakterlerimi utf-8 e çeviriyorum malum türkçe karakter problemi olmasın.


for ($x=0;$x<=3;$x++) { // Diziden gelen verilerimi döndürüyorumç


echo chr(255).chr(254).iconv("UTF-8", "UTF-16LE", $No[$x]. "\t" . $Name[$x] . "\t" . $SurName[$x] ."\t" . $Avarage[$x] . "\n"); // x' değeri ehr değiştiğinde verilerim ekrana geliyor ve türkçe karakter problemini düzeltip ekrana yazdırıyorum.


}

?>



Herkese projelerinde başarılar dilerim. Bu işlemi javascript ile de yapabiliriz. Şu anlık bu yöntemi gösterdim ileri de diğer yöntemi de eklerim.