public function generateRawPartA()
 {
     $sheet = $this->workbook->createSheet();
     $sheet->setTitle("Part A");
     $reportData = new ReportData();
     $partA = $reportData->getPartAData($this->uid);
     $arrayStaffOffice = $this->arrayGetColumn($this->summary, 'staff_office');
     $arrayStaffDepartment = $this->arrayGetColumn($this->summary, 'staff_department');
     $arrayStaffName = $this->arrayGetColumn($this->summary, 'staff_name');
     array_multisort($arrayStaffOffice, $arrayStaffDepartment, $arrayStaffName, SORT_DESC, $this->summary);
     $rowOffSet = 1;
     $colOffSet = 0;
     $sheet->setCellValueByColumnAndRow($colOffSet++, $rowOffSet, "Office");
     $sheet->setCellValueByColumnAndRow($colOffSet++, $rowOffSet, "Department");
     $sheet->setCellValueByColumnAndRow($colOffSet++, $rowOffSet, "Position");
     $sheet->setCellValueByColumnAndRow($colOffSet++, $rowOffSet, "Full Name");
     $sheet->setCellValueByColumnAndRow($colOffSet++, $rowOffSet, "Responsability");
     $sheet->setCellValueByColumnAndRow($colOffSet++, $rowOffSet, "Result");
     $sheet->setCellValueByColumnAndRow($colOffSet++, $rowOffSet, "Comment by Appraiser");
     $sheet->setCellValueByColumnAndRow($colOffSet++, $rowOffSet, "Weight");
     $sheet->setCellValueByColumnAndRow($colOffSet++, $rowOffSet, "Score");
     $rowOffSet += 1;
     foreach ($this->summary as $username => $detail) {
         $colOffSet = 0;
         $sheet->setCellValueByColumnAndRow($colOffSet++, $rowOffSet, $detail['staff_office']);
         $sheet->setCellValueByColumnAndRow($colOffSet++, $rowOffSet, $detail['staff_department']);
         $sheet->setCellValueByColumnAndRow($colOffSet++, $rowOffSet, $detail['staff_position']);
         $sheet->setCellValueByColumnAndRow($colOffSet++, $rowOffSet, $detail['staff_name']);
         $offSetAnchor = $colOffSet;
         if (array_key_exists($username, $partA)) {
             $atLeastOneRowAdded = false;
             foreach ($partA["{$username}"] as $partADetail) {
                 $colOffSet = $offSetAnchor;
                 $sheet->setCellValueByColumnAndRow($colOffSet, $rowOffSet, $partADetail['respon_name']);
                 $sheet->getColumnDimensionByColumn($colOffSet)->setWidth('50');
                 $sheet->getStyleByColumnAndRow($colOffSet++, $rowOffSet)->getAlignment()->setWrapText(true);
                 $sheet->setCellValueByColumnAndRow($colOffSet, $rowOffSet, $partADetail['respon_result']);
                 $sheet->getColumnDimensionByColumn($colOffSet)->setWidth('50');
                 $sheet->getStyleByColumnAndRow($colOffSet++, $rowOffSet)->getAlignment()->setWrapText(true);
                 $sheet->setCellValueByColumnAndRow($colOffSet, $rowOffSet, $partADetail['respon_comment']);
                 $sheet->getColumnDimensionByColumn($colOffSet)->setWidth('50');
                 $sheet->getStyleByColumnAndRow($colOffSet++, $rowOffSet)->getAlignment()->setWrapText(true);
                 $sheet->setCellValueByColumnAndRow($colOffSet, $rowOffSet, $partADetail['respon_weight']);
                 $sheet->getStyleByColumnAndRow($colOffSet++, $rowOffSet)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
                 $sheet->setCellValueByColumnAndRow($colOffSet, $rowOffSet, $partADetail['respon_score']);
                 $sheet->getStyleByColumnAndRow($colOffSet++, $rowOffSet)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
                 // Check if every cell is empty. Dont go to nest row if they are empty
                 if (!empty($partADetail['respon_name']) || !empty($partADetail['respon_result']) || !empty($partADetail['respon_comment']) || !empty($partADetail['respon_weight']) || !empty($partADetail['respon_score'])) {
                     $rowOffSet += 1;
                     $atLeastOneRowAdded = true;
                 }
             }
             if (!$atLeastOneRowAdded) {
                 $rowOffSet += 1;
             }
         } else {
             $rowOffSet += 1;
         }
     }
     for ($i = 0; $i <= $colOffSet; $i++) {
         // Skip autosizing for E to G
         if ($i < 4 || $i > 6) {
             $sheet->getColumnDimensionByColumn($i)->setAutoSize(TRUE);
         }
     }
 }