PHP の fputcsv 関数を使用して配列を CSV ファイルにエクスポートしようとしています。ただし、Excel 2007 と 2010 でファイルを開くと、まったく異なる 2 つの動作が発生します。
Excel 2007 では、すべてのフィールドが次のように個別の列にあるため、必要なものが得られます。
ああ | bbb | ccc | dddd
123 | 456 | 789
"ああ" | "bbb" |
しかし、Excel 2010 では、次のようにすべてのフィールドが同じ列にあります。
aaa,bbb,ccc,dddd
123,456,789
"aaa","""bbb"""
Excel 2007 と 2010 の両方で Excel 2007 の動作を取得するにはどうすればよいですか?
次のスクリプトを使用しました。
$filename = "test.csv";
//header("Content-Type: application/vnd.ms-excel;");
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="' . $filename . '"');
header("Pragma: no-cache");
header("Expires: 0");
$list = array (
array('aaa', 'bbb', 'ccc', 'dddd'),
array('123', '456', '789'),
array('"aaa"', '"bbb"')
);
$fp = fopen("php://output", 'w');
foreach ($list as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
header("Content-Type: application/vnd.ms-excel;"); を使用してみました または header('Content-Type: text/csv'); しかし、私は同じ動作をします。:S
前もって感謝します。
編集: PHPExcel を使用することになりました。すてきな図書館です!!