I am using Maatwebsites to Export Employee profile report to Excel using Laravel-5.8
class ManagerMidYearCompleteExport implements FromCollection, ShouldAutoSize, WithHeadings, WithEvents
{
private $headings = [
'Staff ID',
'Name',
'Gender',
'Official Email',
'Department',
'HOD',
'HRBP'
];
public function collection()
{
$userCompany = Auth::user()->company_id;
$userEmployee = Auth::user()->employee_id;
$userId = Auth::user()->id;
$employeecode = Auth::user()->employee_code;
$identities = DB::table('appraisal_identity')->select('id')->where('company_id', $userCompany)->where('is_current', 1)->pluck('id');
$employee_completed_goals = DB::table('hr_employees')
->join('appraisal_goals', 'hr_employees.employee_code', '=', 'appraisal_goals.employee_code')
->select('hr_employees.employee_code')
->where('hr_employees.company_id', $userCompany)
->where('hr_employees.hr_status',0)
->where('appraisal_goals.is_mid_year_published', '=', '1')
->where('appraisal_goals.line_manager_mid_year_approved', '=', '3')
->where('appraisal_goals.appraisal_identity_id', $identities)
->groupBy('hr_employees.employee_code')
->get();
$published_goals = DB::table('hr_employees AS e')
->join('hr_departments AS d','e.department_id','=','d.id')
->join('hr_employees AS eh','eh.employee_code','=','d.dept_head')
->join('hr_employees AS eb','eb.employee_code','=','d.hr_business_partner_id')
->select(
'e.employee_code as staff_id',
DB::raw('CONCAT(e.first_name, " ", e.last_name) AS full_name'),
DB::raw('IF(e.gender_code = 0, "Female", "Male") AS gender'),
'e.email as official_email',
'd.dept_name',
DB::raw('CONCAT(eh.first_name, " ", eh.last_name) AS hod_name'),
DB::raw('CONCAT(eb.first_name, " ", eb.last_name) AS hrbp_name')
)
->whereIn('e.employee_code', $employee_completed_goals->pluck('employee_code'))
->where('e.company_id', $userCompany)
->where('e.hr_status', 0)
->distinct()
->get();
$published_goals = $published_goals->unique('staff_id');
return collect($published_goals);
}
public function headings() : array
{
return $this->headings; //english
}
public function registerEvents(): array
{
return [
AfterSheet::class => function(AfterSheet $event) {
$cellRange = 'A1:G1';
$event->sheet->getDelegate()->getStyle($cellRange)->getFont()->setSize(14);
},
];
}
}
How do I format my Export Report to something Like this:
Thank you