Laravel 中匯出 csv 檔案

在開發後台的時候,需要匯出會員資料,網路上很多匯出 xml 的方式,相對於 csv 的比較少,所以紀錄一下

我們需要在一個 controller 上面,寫一個 function 去處理檔案,並且利用 fputcsv ,去將行格式化為 csv 並且寫入文件指針中

$members = Member::all();

$filename = "email_list_" . time() .".csv";
$handle = fopen($filename, 'w+');
fputcsv($handle, array('name', 'email'));

foreach($members as $member) {
    fputcsv($handle, array($member->name, $member->email));
}

fclose($handle);

$headers = array(
    'Content-Type' => 'text/csv',
);

return response->download($filename, $filename, $headers);

最後,我們用 response->download() 這個方法去下載檔案,就可以抓到我們要的 csv 囉!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *