Beyaz.Net İpucu

PHP ile EXCEL'e veri aktarma

Dikkat etmemiz gereken ilk nokta header bilgisi

header("Content-Type:   application/vnd.ms-excel; charset=windows-1254");
header("Content-type:   application/x-msexcel; charset=windows-1254");
$filename = "test".rand().".xls"; // dosya ismi
header("Content-Disposition: attachment; filename=".urlencode($filename)."");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");;
header("Content-Type: application/vnd.oasis.opendocument.spreadsheet xls; charset=windows-1254");


Excel dökümanının çeşitli platformlarda sıkıntı çıkartmasını istemiyorsak ve Türkçe karakter barındıracaksa karakter seti windows-154 olarak olarak ayarlanmalıdır. Sonraki işlem satırların yazımı işlemidir. Verilerin alındığı kaynak windows-1254 değil ise mb_convert_encoding fonksiyonu yardımıyla windows-1254'e çevirmemiz gerekiyor.
İkinci dikkat edeceğimiz nokta: delimiter,sperator,ayırıcı'dır. Klasik olarak excel \t karakterini tablo ayırıcı olarak kullanır. PHP dili C'den gelen geleneği bozmak istemediği için tek tırnak içerisinde yazılan \t'ı dikkate almaz. Bunun için excel'e yazılacak bütün veriler çift tırnak içerinde yazılmalıdır.

echo  mb_convert_encoding("Birinci Kolon Birinci Satır \t İkinci Kolon Birinci Satır \r\n","windows-1254","utf-8");
echo  mb_convert_encoding("Birinci Kolon İkinci Satır \t İkinci Kolon ikinci Satır \r\n","windows-1254","utf-8");

Kategorideki Güncel Makaleler