私は一般的なアルゴリズムを使用して、理論上は主要な OS で機能する CSV ファイルを作成しています。しかし、クライアントは数週間前に Mac の使用を開始し、Microsoft Excel 2008 for Mac 12.2.1 で CSV ファイルを読み取ることができないと私に言い続けています。
「セミコロン;」を使用するようにOSが構成されています。これはまさに私がCSVに書いているものです。また、メモ帳でファイルを開くと、改行がなく、すべてが 1 行で表示されていることに気付きました。これが、Excel がファイルを正しく読み取れない理由です。しかし、私のコードでは、クロスブラウザーの改行を使用しています\r\n
これは私が使用する完全なコードです:
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 ユーザーがファイルを正しく読めるようにするためにできることはありますか?