public function summaryLSWDO($regCode, $provCode, $cityCode, $lguType) { $indicator_model = new indicator_model(); $reports_model = new reports_model(); // Create new PHPExcel object $objPHPExcel = new PHPExcel(); $firstMotherIndicator = $indicator_model->getFirstMotherIndicator(); $secondMotherIndicator = $indicator_model->getSecondMotherIndicator(); $fourthMotherIndicator = $indicator_model->getFourthMotherIndicator(); $thirdMotherIndicator = $indicator_model->getThirdMotherIndicator(); $getScorePart1 = $indicator_model->getsummaryLSWDO($regCode, $provCode, $cityCode); $getPart1 = $indicator_model->getPart1($lguType); $getPart2 = $indicator_model->getPart2($lguType); $getPart3 = $indicator_model->getPart3($lguType); $getPart4 = $indicator_model->getPart4($lguType); $get_totalAssess = $reports_model->get_totalAssess($regCode, $provCode, $lguType); $objPHPExcel->getActiveSheet()->setCellValue('B1', 'Compliance/Non Compliance Per indicator'); //autosize column $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true); $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setAutoSize(true); $objPHPExcel->getActiveSheet()->getStyle('B1')->getFill()->getStartColor()->setRGB('FF0000'); // $objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(-1);a $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1); $objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setSize(20); $objPHPExcel->getActiveSheet()->mergeCells('B1:E2'); //Center text merge columns $objPHPExcel->getActiveSheet()->getStyle('B1')->getAlignment()->applyFromArray(array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER)); // $col = 'A'; // $row = 5; $objPHPExcel->getActiveSheet()->setCellValue('A3', 'Areas'); $objPHPExcel->getActiveSheet()->getStyle('A3')->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->setCellValue('B3', 'Distribution of functional by Province -Sample title'); $objPHPExcel->getActiveSheet()->mergeCells('A3:A5'); $objPHPExcel->getActiveSheet()->mergeCells('B3:E3'); //Center text merge columns $objPHPExcel->getActiveSheet()->getStyle('B3')->getAlignment()->applyFromArray(array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER)); $objPHPExcel->getActiveSheet()->getStyle('A3')->getAlignment()->applyFromArray(array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER)); $objPHPExcel->getActiveSheet()->getStyle('A3')->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); $objPHPExcel->getActiveSheet()->mergeCells('B6:e6'); $objPHPExcel->getActiveSheet()->freezePane('B6'); //Header $objPHPExcel->getActiveSheet()->setCellValue('B4', 'Indicators'); $objPHPExcel->getActiveSheet()->getStyle('B4')->getAlignment()->applyFromArray(array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER)); //Start Editing //Part1 $row2 = 7; $col2 = 'A'; $objPHPExcel->getActiveSheet()->setCellValue($col2 . $row2, $firstMotherIndicator->indicator_name); $col2++; $row2++; foreach ($getPart1 as $firstPartIndicator) { if ($firstPartIndicator->indicator_checklist_id == 1) { $arr = explode("-", $firstPartIndicator->indicator_id); $indicatorID = $arr[0]; foreach ($getScorePart1 as $scorePart1) { if ($scorePart1->indicator_id == $firstPartIndicator->indicator_id) { $indicator_id = $firstPartIndicator->indicator_name; $objPHPExcel->getActiveSheet()->setCellValue($col2 . $row2, $indicator_id); if ($col2 == 'B') { $col2 = 'B'; } $row2++; } } } } //Part2 $col2 = 'A'; $objPHPExcel->getActiveSheet()->setCellValue($col2 . $row2, $secondMotherIndicator->indicator_name); $col2++; $row2++; foreach ($getPart2 as $secondPartIndicator) { if ($secondPartIndicator->indicator_checklist_id == 1) { $arr = explode("-", $secondPartIndicator->indicator_id); $indicatorID = $arr[0]; foreach ($getScorePart1 as $scorePart1) { if ($scorePart1->indicator_id == $secondPartIndicator->indicator_id) { $indicator_id = $secondPartIndicator->indicator_name; $objPHPExcel->getActiveSheet()->setCellValue($col2 . $row2, $indicator_id); if ($col2 == 'B') { $col2 = 'B'; } $row2++; } } } } //Part3 $col2 = 'A'; $objPHPExcel->getActiveSheet()->setCellValue($col2 . $row2, $thirdMotherIndicator->indicator_name); $col2++; $row2++; foreach ($getPart3 as $thirdPartIndicator) { if ($thirdPartIndicator->indicator_checklist_id == 1) { $arr = explode("-", $thirdPartIndicator->indicator_id); $indicatorID = $arr[0]; foreach ($getScorePart1 as $scorePart1) { if ($scorePart1->indicator_id == $thirdPartIndicator->indicator_id) { $indicator_id = $thirdPartIndicator->indicator_name; $objPHPExcel->getActiveSheet()->setCellValue($col2 . $row2, $indicator_id); if ($col2 == 'B') { $col2 = 'B'; } $row2++; } } } } //Part4 $col2 = 'A'; $objPHPExcel->getActiveSheet()->setCellValue($col2 . $row2, $fourthMotherIndicator->indicator_name); $col2++; $row2++; foreach ($getPart4 as $fourthPartIndicator) { if ($fourthPartIndicator->indicator_checklist_id == 1) { $arr = explode("-", $fourthPartIndicator->indicator_id); $indicatorID = $arr[0]; foreach ($getScorePart1 as $scorePart1) { if ($scorePart1->indicator_id == $fourthPartIndicator->indicator_id) { $indicator_id = $fourthPartIndicator->indicator_name; $objPHPExcel->getActiveSheet()->setCellValue($col2 . $row2, $indicator_id); if ($col2 == 'B') { $col2 = 'B'; } $row2++; } } } } //End Editing // //border $objPHPExcel->getActiveSheet()->getStyle('A1:' . $objPHPExcel->getActiveSheet()->getHighestColumn() . $objPHPExcel->getActiveSheet()->getHighestRow())->getBorders()->getAllBorders()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN); // Rename worksheet (worksheet, not filename) $objPHPExcel->setActiveSheetIndex(0)->setTitle('LSWDO-Summary'); // Add new sheet // Add some data // Set active sheet index to the first sheet, so Excel opens this as the first asheet $objPHPExcel->setActiveSheetIndex(0); // Redirect output to a client’s web browser (Excel2007) //clean the output buffer ob_end_clean(); //this is the header given from PHPExcel examples. but the output seems somewhat corrupted in some cases. //header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); //so, we use this header instead. // $regionName = $this->reports_model->getRegionName($region); $filename = 'Summary.xlsx'; header('Content-type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename=' . $filename); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->save('php://output'); }