128: private function pageHeader($sheet, string $title, string $sub, string $darkBg = 'FF0F172A') 129: { 130: $sheet->mergeCells('A1:P1'); 131: $sheet->mergeCells('A2:P2'); 132: $sheet->mergeCells('A3:P3'); 133: $this->fill($sheet, 'A1:P3', $darkBg); 134: $sheet->setCellValue('A1', ' ' . $title); 135: $this->font($sheet, 'A1', ['bold' => true, 'size' => 16, 'color' => 'FFFFFFFF']); 136: $this->align($sheet, 'A1', 'left', 'center'); 137: $sheet->setCellValue('A2', ' ' . $sub); 138: $this->font($sheet, 'A2', ['size' => 10, 'color' => 'FF94A3B8']); 139: $this->align($sheet, 'A2', 'left', 'center'); 140: $sheet->setCellValue('A3', ' Generated: ' . now()->format('d M Y H:i') . ' | Panel Test App'); 141: $this->font($sheet, 'A3', ['size' => 8, 'color' => 'FF475569']); 142: $sheet->getRowDimension(1)->setRowHeight(36); 143: $sheet->getRowDimension(2)->setRowHeight(20); 144: $sheet->getRowDimension(3)->setRowHeight(16); 145: } 146: 147: // ============================================================ 148: // SHEET 1: KESIMPULAN EKSEKUTIF 149: // ============================================================ 150: private function sheet1_executive($sheet, $panelTest, $sessions, $total) 151: { 152: $isMarketing = $panelTest->unit_type === 'marketing'; 153: $sheet->getColumnDimension('A')->setWidth(2); 154: foreach (range('B', 'P') as $c) $sheet->getColumnDimension($c)->setWidth(13); 155: $sheet->getColumnDimension('B')->setWidth(28); 156: $sheet->getColumnDimension('C')->setWidth(18); 157: 158: $this->pageHeader( 159: $sheet, 160: $isMarketing