Skip to content
Snippets Groups Projects
Commit f17cf9b0 authored by PavelBegunkov's avatar PavelBegunkov
Browse files

xls reports refactoring

parent 05f4543f
Branches
Tags
No related merge requests found
......@@ -78,10 +78,8 @@ class Controller_Handler_FileCreator extends Controller_Handler
$SubmodulesCount = 0;
// Модули
for ($k = 1; $k <= $structureHandled['ModulesCount']; $k++)
for ($k = 1, $pointer = 1; $k <= $structureHandled['ModulesCount']; $k++)
{
if ($k == 1) $pointer = 1;
$sheet->mergeCellsByColumnAndRow($pointer, 1, $pointer + $structureHandled[$k]['SubmodulesCount'] - 1, 1);
$sheet->setCellValueByColumnAndRow(
......@@ -396,61 +394,62 @@ class Controller_Handler_FileCreator extends Controller_Handler
$templateFile = DOCROOT."docs/template credit.xls";
if (!file_exists($templateFile)) {
exit("template wasn't found" . PHP_EOL); // TODO
exit("template wasn't found" . PHP_EOL); // TODO
}
$objPHPExcel = PHPExcel_IOFactory::load($templateFile);
// Make copy of sheet
$sheetTemplate = $objPHPExcel->getActiveSheet()->copy();
// Make copy of named ranges
$nmrange = $objPHPExcel->getNamedRanges() ;
$nmrange = $objPHPExcel->getNamedRanges() ;
$index = 0;
foreach ($listDisciplines as $record) {
$disciplineID = $record['DisciplineID'];
$info = $this->model->getFinalFormInfo($disciplineID, $groupID);
foreach ($listDisciplines as $record)
{
$disciplineID = $record['DisciplineID'];
$info = $this->model->getFinalFormInfo($disciplineID, $groupID);
$type = $info[0]['ExamType'];
if ($type == 'exam') {
$type = $info[0]['ExamType'];
if ($type == 'exam') {
continue;
}
if ($index > 0) {
// remove name ranges from active page
foreach ($objPHPExcel->getNamedRanges() as $name => $r )
{
$objPHPExcel -> removeNamedRange ($r->getName(), null);
}
//make clone from page copy and include it in workbook
$C = clone $sheetTemplate;
try {
$C->setTitle($this->getSheetName($info[0]));
} catch (Exception $ex) {
$C->setTitle("Без_имени_".$index);
}
$objPHPExcel->addSheet($C,$index);
$objPHPExcel->setActiveSheetIndex($index);
// create name ranges at new sheet
foreach ($nmrange as $namedRange) {
$name = $namedRange->getName();
$rg = $namedRange->getRange();
$objPHPExcel->addNamedRange(new PHPExcel_NamedRange($name, $objPHPExcel->getActiveSheet(),$rg));
}
// remove name ranges from active page
foreach ($objPHPExcel->getNamedRanges() as $name => $r )
{
$objPHPExcel -> removeNamedRange ($r->getName(), null);
}
else
{
try {
$objPHPExcel->setActiveSheetIndex($index)->setTitle($this->getSheetName($info[0]));
} catch (Exception $ex) {
$objPHPExcel->setActiveSheetIndex($index)->setTitle("Без_имени_".$index);
}
$gradeNum = $info[0]['GradeNum'];
$groupNum = $info[0]['GroupNum'];
//make clone from page copy and include it in workbook
$C = clone $sheetTemplate;
try {
$C->setTitle($this->getSheetName($info[0]));
} catch (Exception $ex) {
$C->setTitle("Без_имени_".$index);
}
$this->printDisciplineToExcelFile($objPHPExcel, $disciplineID, $groupID, $info[0]);
$index++;
}
$objPHPExcel->addSheet($C,$index);
$objPHPExcel->setActiveSheetIndex($index);
// create name ranges at new sheet
foreach ($nmrange as $namedRange) {
$name = $namedRange->getName();
$rg = $namedRange->getRange();
$objPHPExcel->addNamedRange(new PHPExcel_NamedRange($name, $objPHPExcel->getActiveSheet(),$rg));
}
}
else
{
try {
$objPHPExcel->setActiveSheetIndex($index)->setTitle($this->getSheetName($info[0]));
} catch (Exception $ex) {
$objPHPExcel->setActiveSheetIndex($index)->setTitle("Без_имени_".$index);
}
$gradeNum = $info[0]['GradeNum'];
$groupNum = $info[0]['GroupNum'];
}
$this->printDisciplineToExcelFile($objPHPExcel, $disciplineID, $groupID, $info[0]);
$index++;
} // !foreach list of disciplines
if ($index === 0) {
throw HTTP_Exception::factory(400);
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment