我在谷歌搜索从laravel生成csv文件,我找到了以下代码:
public function download(){
$headers = [
'Cache-Control' => 'must-revalidate, post-check=0, pre- check=0'
, 'Content-type' => 'text/csv'
, 'Content-Disposition' => 'attachment; filename=galleries.csv'
, 'Expires' => '0'
, 'Pragma' => 'public'
];
$list = User::all()->toArray();
# add headers for each column in the CSV download
array_unshift($list, array_keys($list[0]));
$callback = function() use ($list)
{
$FH = fopen('php://output', 'w');
foreach ($list as $row) {
fputcsv($FH, $row);
}
fclose($FH);
};
return Response::stream($callback, 200, $headers);
}
在上面的代码中,我并不理解
$callback = function() use ($list){...}
有人请解释一下吗?
答案 0 :(得分:0)
让自己陷入困境并使用此库:http://www.maatwebsite.nl/laravel-excel/docs
它可以将您的数据转换为csv,excel和所有其他类型的好东西。对于较大的数据集,它特别好。
当您在同一个操作系统上的同一程序中打开csv时,这一切都很有趣。但是,只要您的客户使用Libre,Open或者只是Office op MS或Mac,您的世界就会在多层中进入新的地狱深处。
这个图书馆尽可能标准化csv,你会喜欢它。
答案 1 :(得分:0)
我最近发现了' league/csv'包 - 在这里写了一篇关于我的用法的S.O帖子(一个简单的例子):CSV export in laravel 5 controller