public function export(Questionnaire $questionnaire) { $total_ticks = []; foreach ($questionnaire->questions()->get() as $question) { $total_ticks[$question->id] = 0; foreach ($question->options()->get() as $option) { $total_ticks[$question->id] += $option->num_vote; } if ($total_ticks[$question->id] == 0) { $total_ticks[$question->id] = 1; } } Excel::create($questionnaire->title, function ($excel) use($questionnaire, $total_ticks) { // Set the title $excel->setTitle($questionnaire->title); // Chain the setters $excel->setCreator($questionnaire->user->username)->setCompany('Skillema'); // Call them separately $excel->setDescription($questionnaire->description); $excel->sheet('result', function ($sheet) use($questionnaire, $total_ticks) { $sheet->loadView('excel.questionnaire', compact('questionnaire', 'total_ticks')); }); })->export('xlsx'); }