首页 > 解决方案 > 将数据保存到 Excel

问题描述

我想将数据保存到 Excel 而不是 PDF。请协助。

这是我的控制器:

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');
    }
}

标签: phplaravellaravel-5

解决方案


你可以使用这个库。我给你举个例子。希望对您有所帮助。

public function getUsageData(Request $request){
    Excel::create('Export data', function($excel) {

    $excel->sheet('Sheet 1', function($sheet) {
        $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();

         foreach($particulars as $particular) {
             $data[] = array(
                $particular->some_field,
                $particular->some_another_field,
                // and so on ...                    
            );
        } // if you don't need id, ommite it. but make sure $particulars is an array

        $sheet->fromArray($data, null, 'A1', false, false);
        $headings = array('some_field', 'some_another_field');
        $sheet->prependRow(1, $headings); // it will create the first row of your Excel sheet as headings
    });
  })->export('xls');
}

推荐阅读