调整生成的 CSV 文件的格式
Adjust format of generated CSV-File
我正在生成一个只有 4 列的非常小的 CSV 文件,它工作正常。当我按下指定的按钮时,它会下载并且我可以打开它并且所有想要的数据都存在。
不过版式很奇怪,不好看。外观如下:
https://i.stack.imgur.com/klXcw.png
上行是列名,下行是数据。
这是我生成文件的代码:
public function exportData(Bewerbungen $bewerbung) {
$query = Portal::query()->where('email', '=', $bewerbung->bewerber_email)->get();
$headers = [
"Content-type" => "text/csv",
"Content-Disposition" => "attachment; filename=bewerberdaten.csv",
"Pragma" => "no-cache",
"Cache-Control" => "must-revalidate, post-check=0, pre-check=0",
"Expires" => "0",
];
$columns = ['id', 'email', 'vorname', 'nachname', 'telefon'];
$callback = function () use ($query, $columns) {
$file = fopen('php://output', 'w');
fputcsv($file, $columns);
foreach ($query as $res) {
fputcsv($file, [$res->id, $res->email, $res->vorname, $res->nachname, $res->telefon]);
}
fclose($file);
};
return Response::stream($callback, 200, $headers);
}
我尝试过内容编码,但这是我第一次使用 csv 和文件导出,所以我不知道方向是否正确。
编辑:更好的截图
https://i.stack.imgur.com/8HvhA.png
解决方案是安装这个:
https://docs.laravel-excel.com/3.1/getting-started/installation.html
然后将变量 'excel_compatibility' => false
更改为 true
它在 config/excel.php
文件中
我正在生成一个只有 4 列的非常小的 CSV 文件,它工作正常。当我按下指定的按钮时,它会下载并且我可以打开它并且所有想要的数据都存在。
不过版式很奇怪,不好看。外观如下:
https://i.stack.imgur.com/klXcw.png
上行是列名,下行是数据。
这是我生成文件的代码:
public function exportData(Bewerbungen $bewerbung) {
$query = Portal::query()->where('email', '=', $bewerbung->bewerber_email)->get();
$headers = [
"Content-type" => "text/csv",
"Content-Disposition" => "attachment; filename=bewerberdaten.csv",
"Pragma" => "no-cache",
"Cache-Control" => "must-revalidate, post-check=0, pre-check=0",
"Expires" => "0",
];
$columns = ['id', 'email', 'vorname', 'nachname', 'telefon'];
$callback = function () use ($query, $columns) {
$file = fopen('php://output', 'w');
fputcsv($file, $columns);
foreach ($query as $res) {
fputcsv($file, [$res->id, $res->email, $res->vorname, $res->nachname, $res->telefon]);
}
fclose($file);
};
return Response::stream($callback, 200, $headers);
}
我尝试过内容编码,但这是我第一次使用 csv 和文件导出,所以我不知道方向是否正确。
编辑:更好的截图
https://i.stack.imgur.com/8HvhA.png
解决方案是安装这个: https://docs.laravel-excel.com/3.1/getting-started/installation.html
然后将变量 'excel_compatibility' => false
更改为 true
它在 config/excel.php
文件中