Ejemplo n.º 1
0
/**
 * 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;
}
Ejemplo n.º 2
0
                     $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"');