Ben teoride önemli işletim sistemleri için çalışır CSV dosyaları yazmak için genel bir algoritma kullanır. Ancak, istemci bir kaç hafta önce Mac kullanmaya başladı ve CSV dosyası Mac 12.2.1 için Microsoft Excel 2008'de okunamaz söyleyip duruyorlar.
Onlar OS kullanmak üzere yapılandırılmış "noktalı virgül;" Ben CSV yazıyorum tam olarak ne olduğunu liste ayırıcı olarak. Onlar da not defteri dosyasını açtığınızda, her şeyi tek bir satırda görüntülenir, hiçbir linebreaks vardır fark olduğunu söylemek; Excel dosyasını düzgün okuyamıyor neden olan; ama benim kod, ben çapraz tarayıcı satır sonu kullanıyorum \r\n
Bu kullandığım tam kodu:
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
// Output to browser with appropriate mime type, you choose ;)
header("Content-type: text/x-csv");
//header("Content-type: text/csv");
//header("Content-type: application/csv");
header("Content-Disposition: attachment; filename=participantes.csv");
$separator = ";";
$rs = $sql->doquery("SELECT A QUERY TO RETRIEVE DATA FROM THE DB");
$header = "";
$num_fields = mysql_num_fields($rs);
for($i=0; $i<$num_fields; $i++){
$field = mysql_field_name($rs, $i);
$header .= $field.$separator;
}
echo $header."\r\n";
while($row = $sql->fetch($rs)){
$str = "";
for($i=0; $i<$num_fields; $i++){
$field = mysql_field_name($rs, $i);
$value = str_replace(";", ",", $row->{$field});
$value = str_replace("\n", ",", $value);
$value = str_replace("\d", ",", $value);
$value = str_replace(chr(13), ",", $value);
$str .= $value.$separator;
}
echo $str."\r\n";
}
Mac kullanıcıları düzgün dosyayı okuyabilir yüzden yapabileceğim bir şey var mı?