@Celko; alt kısımda örnek bir kod gönderiyorum. Yalnız bunu yazdığım zamanlar utf-8 de karakter problem yaşadığım için verileri ansiye çevirip çözmüştüm. Sizde alttaki kodları bir php dosyasına ekleyin ve dosya tipini ansi yapın (örnek:
http://prntscr.com/2zfe5c).
Veritabanı kodlaması olarak düz mysql kullandığınızı varsayarak aşağıdaki örneği hazırladım eğer mysqli veya pdo kullanıyorsanız aşağıdaki sorgu kısımlarını düzenlemeyi ve veritabanı bağlantınızı yapmayı unutmayınız.
<?php
/**
* YKDSoFT
*/
function xlsBOF()
{
echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0);
return;
}
function xlsEOF()
{
echo pack("ss", 0x0A, 0x00);
return;
}
function xlsWriteNumber($Row, $Col, $Value)
{
echo pack("sssss", 0x203, 14, $Row, $Col, 0x0);
echo pack("d", $Value);
return;
}
function xlsWriteLabel($Row, $Col, $Value )
{
$L = strlen($Value);
echo pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $L);
echo $Value;
return;
}
function ISOCevir($Deger)
{
if (!empty($Deger))
{
return iconv("UTF-8", "ISO-8859-9", $Deger);
}else{ return false; }
}
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");;
header("Content-Disposition: attachment;filename=excelexport.xls ");
header("Content-Transfer-Encoding: binary ");
xlsBOF();
xlsWriteLabel(0, 0, "Üye ID");
xlsWriteLabel(0, 1, "İsim");
xlsWriteLabel(0, 2, "Soyad");
xlsWriteLabel(0, 3, "E-Posta");
$xlsRow = 1;
$Sql = mysql_query("Select id, isim, soyad, eposta From uyeler");
while(list($uye_id, $isim, $soyad, $eposta) = mysql_fetch_array($Sql))
{
$uye_id = ISOCevir($uye_id);
$isim = ISOCevir($isim);
$soyad = ISOCevir($soyad);
$eposta = ISOCevir($eposta);
xlsWriteLabel($xlsRow, 0, $uye_id);
xlsWriteLabel($xlsRow, 1, $isim);
xlsWriteLabel($xlsRow, 2, $soyad);
xlsWriteLabel($xlsRow, 3, $eposta);
$xlsRow++;
}
xlsEOF();
exit;
?>