Laravel:将搜索到的数据导出到excel

时间:2018-05-24 21:09:27

标签: laravel-5

我想将搜索到的数据导出到下面的laravel是我的控制器

public function getUsageData(Request $ request)     {

    $start_date = $request->get('start_date');
    $end_date = $request->get('end_date');

    $particulars = DB::table('particulars')
        ->join('reqs', 'particulars.particular_id', "=", 'reqs.particular_id')
        ->whereBetween('date_applied', [$start_date, $end_date])
        ->select('particulars.item_name', 'particulars.unit', 'particulars.price', 'reqs.quantity_issued',
            DB::raw('particulars.price*reqs.quantity_issued AS total_cost'))
        ->get();
    if ($particulars->isEmpty()) {


        return "No Records Found...................... ";

    } else {

        $pdf = PDF::loadView('issuer.getUsageReport', ['particulars' => $particulars]);
        return $pdf->stream('getUsageReport.issuer');
    }
}

我想将这些数据检索到excel而不是pdf请帮助

1 个答案:

答案 0 :(得分:0)

else { ... }语句中的两个PDF行替换为:

$list = $particulars->toArray();

//This line adds headers if present in your data
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()->streamDownload($callback,"filename.csv");

根据particulars的结构,您可能需要先对数据进行一些操作,例如扁平化。如果是,请在下面评论。