我在PHP中使用fputcsv创建一个CSV文件。文件创建成功,我可以在MacOS中打开文件没有问题。 (我在MacOS中使用Numbers)。问题出在Microsoft Excel中,它将所有行显示为合并的单个列。
我将分隔符设置为";"在代码中。
当我按照Microsoft文档中的说明检查Language and Regional Settings时,分隔符也是&#34 ;;"。
我还应该检查什么? 谢谢。
答案 0 :(得分:2)
这个标题可以正确显示csv格式。
class Bot {
constructor(parameter) {
this.parameter = parameter;
}
doSomething() {
alert(this.parameter.foo);
}
}
let instance = new Bot({foo: 'bar'});
instance.doSomething(); // Will fire an alert containing the contents of {foo}
您可以使用此标题
答案 1 :(得分:1)
以下方法似乎对我有用。 Microsoft Excel完美打开它。
$filePath = '/home/user/';
$filename = 'test.csv';
$df = fopen($filePath.$filename, 'w');
fprintf($df, chr(0xEF).chr(0xBB).chr(0xBF));
fputcsv($df, $dataColumns);
foreach ($dataArray as $dataRow) {
fputcsv($df, $dataRow);
}
fclose($df);
// Output csv
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename='.$filename);
header("Cache-Control: no-store, no-cache");
readfile($filePath.$filename);
fprintf($df, chr(0xEF).chr(0xBB).chr(0xBF));
写入文件头以进行正确编码。fputcsv(...)
的第三个参数来设置分隔符。