【发布时间】:2013-01-11 07:46:19
【问题描述】:
我正在用 PHP 生成一个 CSV 可下载文件。我有一个问题,当我在 MS Excell 或 Ubuntu Libre Office 中打开文件时,格式与预期不同。
我想要这个输出,但我不能强制从新行开始。
Name Slope Length Size(Inches) Max Length Location
Name1 5 150 12" 500 location1
Name2 8 350 12" 400 location 2
Name3 16 326 12" 400 location3
这是我的 PHP 代码
$csv_data[] = $_POST['name'][$i];
$csv_data[] = $_POST['slope'][$i];
$csv_data[] = $_POST['length'][$i];
$csv_data[] = $size;
$csv_data[] = $max_length;
$csv_data[] = $_POST['location'][$i].PHP_EOLE;
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=file.csv');
$output = fopen('php://output', 'w');
fputcsv($output, array("Name", "Slope", "Length", "Size", "Max Length", "Location"));
fputcsv($output, $csv_data);
但是这段代码输出是这样的:
Name Slope Length Size Max Slope Length Location
Name1 5 150 12" 500 location1 Name2 8 350 12" 400 location 2 Name3 16 326 12" 400 location3
【问题讨论】:
-
在可以正确读取Unix或Windows换行符的编辑器中查看文件
-
我在 MS WordPad 中读取了此输出,并且输出几乎与预期的一样,但我还需要它在 MS Excell 中也可以读取。
-
尝试读取notepad.exe中的输出不是wordpad。请发布您的完整代码。
-
MS Excel 不在乎它是 \n\r、\r\n 还是简单的 \n,它应该适用于所有... WordPad !== MSExcel
标签: php file-io download fputcsv