/** * Take the generator string specification produced by parseGeneratorString and * return a list of strings where the patterns are instantiated. * * @param array $patSpecs * @param int $count * @return array */ function generatePatterns($patSpecs, $count) { $patternList = array(); for ($i = 0; $i < $count; $i++) { $str = ''; foreach ($patSpecs as $pat) { if ($pat) { if ($pat[0] == 'String') { $str .= $pat[1][0]; } elseif ($pat[0] == 'Pattern') { if ($pat[1][0] == 'numeric') { $str .= (int) ($pat[1][1] + $i * $pat[1][2]); } elseif ($pat[1][0] == 'alpha') { $charIntVal = ord($pat[1][1]); if ($charIntVal >= 65 and $charIntVal <= 90) { $offset = 0x40; $charIntVal = alpha2num($pat[1][1]); } else { $offset = 0x60; $charIntVal = alpha2num($pat[1][1], $offset); } $str .= num2alpha($charIntVal + $i * $pat[1][2], $offset); } } } } $patternList[] = $str; } return $patternList; }
$excel->getActiveSheet()->getStyle('E' . $activeRow)->applyFromArray($style_border); $excel->getActiveSheet()->getStyle('F' . $activeRow)->applyFromArray($style_border); //Create cells for each of the columns cached earlier foreach ($columns as $column) { $excel->getActiveSheet()->getStyle(num2alpha($column["count"] + 6) . $activeRow)->applyFromArray($style_border); if ($column["columnType"] == "External") { //Output external assessment data $externalIndex = $column["assessment"] . "-" . $column["category"] . "-" . $column["field"] . "-" . $row["gibbonPersonID"]; if (isset($externalResults[$externalIndex])) { $excel->getActiveSheet()->setCellValue(num2alpha($column["count"] + 6) . $activeRow, $externalResults[$externalIndex]); } } else { //Output internal assessment data $internalIndex = $column["gibbonYearGroupID"] . "-" . $column["course"] . "-" . $column["type"] . "-" . $row["gibbonPersonID"]; if (isset($internalResults[$internalIndex])) { $excel->getActiveSheet()->setCellValue(num2alpha($column["count"] + 6) . $activeRow, $internalResults[$internalIndex]); } } } $activeRow++; } } } } } //FINALISE THE DOCUMENT SO IT IS READY FOR DOWNLOAD // Set active sheet index to the first sheet, so Excel opens this as the first sheet $excel->setActiveSheetIndex(0); // Redirect output to a client’s web browser (Excel2007) header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="Data Points.xlsx"');