diff --git a/~dev_rating/application/classes/Controller/Handler/FileCreator.php b/~dev_rating/application/classes/Controller/Handler/FileCreator.php
index 95e27fc28d5ee455782a43d295a876aa41ebe019..06aa846633f11c29961916263c5230d076ab007b 100644
--- a/~dev_rating/application/classes/Controller/Handler/FileCreator.php
+++ b/~dev_rating/application/classes/Controller/Handler/FileCreator.php
@@ -214,13 +214,13 @@ class Controller_Handler_FileCreator extends Controller_Handler
         $index = 1;
 
         foreach($result as $studentInfo){
-            $this->addStudentToSheet($objPHPExcel, $studentInfo, $rowNumber, $index);
+            $this->addStudentToSheet($objPHPExcel, $studentInfo, $rowNumber, $index, $type);
             $rowNumber++;
             $index++;				
         }    
     }
 
-    protected function prepareSheetHeader(&$objPHPExcel, $examType, $data) {
+    protected function prepareSheetHeader(&$objPHPExcel, $disciplineType, $data) {
         $sheet = $objPHPExcel->getActiveSheet();
         
         $range = $objPHPExcel->getNamedRange("Discipline")->getRange();
@@ -236,31 +236,43 @@ class Controller_Handler_FileCreator extends Controller_Handler
 		
         $range = $objPHPExcel->getNamedRange("Grade")->getRange();
 		$degree = $data['Degree'];
-		$gradeName = $data['GradeNum'];
+        $gradeNum =  $data['GradeNum'];
+		$gradeName = $gradeNum;
 		if ($degree == 'master')
 			$gradeName = $gradeName."Рј";
         $sheet->setCellValue($range, $gradeName);
 		
         $range = $objPHPExcel->getNamedRange("Semester")->getRange();
-        $sheet->setCellValue($range, $data['SemesterNum']);
+        $semester = $data['SemesterNum'] + ($gradeNum -1)*2;
+        $sheet->setCellValue($range, $semester);
+
         $range = $objPHPExcel->getNamedRange("Year")->getRange();
         $sheet->setCellValue($range, $data['Year']);
         $range = $objPHPExcel->getNamedRange("CreationDate")->getRange();
-        $sheet->setCellValue($range, date("d.m.y"));
+        $sheet->setCellValue($range, date("dd.mm.yy"));
+        
         $range = $objPHPExcel->getNamedRange("Date")->getRange();
-        if ($examType == 'exam') {
-            $controlDate = '__________';
-        } else {
-            $controlDate = '30.12.2014';
+        if ($disciplineType == 'credit') {
+            $controlDate = "Дата зачета\n30.12.2014";
+        } elseif ($disciplineType == 'exam') {
+            $controlDate = "Дата экзамена\n__________";
         }
-        $sheet->setCellValue("$range", "Дата зачета \n$controlDate");
+        $sheet->setCellValue("$range", $controlDate);
     }
-    
-    protected function addStudentToSheet(&$objPHPExcel, $data, $row, $index) 
+
+    protected function addStudentToSheet($disciplineType, &$objPHPExcel, $data, $row, $index)
     {
-            $sheet = $objPHPExcel->getActiveSheet();
-        
-            $indPosition = 'A'; // Номер 
+        $sheet = $objPHPExcel->getActiveSheet();
+        if ($disciplineType == 'credit') {
+            addStudentInfoForCreditToSheet($sheet, $data, $row, $index);
+        } elseif ($disciplineType == 'exam') {
+            addStudentInfoForExamToSheet($sheet, $data, $row, $index);
+        }
+    }
+
+    protected function addStudentInfoForCreditToSheet(&$sheet, $data, $row, $index)
+    {
+            $indPosition = 'A'; // Номер
             $namePosition = 'B';  // ФИО 
             $totalRatePosition = 'G';  // Итоговый рейтинг 
             $semesterRatePosition  = 'H';   // Сумма баллов
@@ -299,7 +311,71 @@ class Controller_Handler_FileCreator extends Controller_Handler
                     ->setCellValue($semesterRatePosition.$row, $rate)
                     ->setCellValue($bonusRatePosition.$row, $bonus)
                     ->setCellValue("J".$row, $tempStr);
-        
+    }
+
+    protected function addStudentInfoForExamToSheet(&$sheet, $data, $row, $index)
+    {
+        $indPosition = 'A'; // Номер
+        $namePosition = 'B';  // ФИО
+        $totalRatePosition = 'G';  // Итоговый рейтинг
+        $semesterRatePosition  = 'H';   // Сумма баллов
+        $bonusRatePosition = 'I'; // Бонусные баллы
+        $examRatePosition = 'J'; // Баллы за экзамен
+        $rateOfFivePosition = 'K'; // Оценка за экзамен по пятибальной системе
+
+        $sheet  ->getStyle("A".$row.":S".$row)
+            ->getBorders()->getAllBorders()
+            ->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
+        $sheet  ->getStyle("G".$row.":J".$row)
+            ->getAlignment()
+            ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
+        $sheet  ->getStyle("K".$row.":L".$row)
+            ->getAlignment()
+            ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
+        $sheet  ->getStyle("M".$row.":N".$row)
+            ->getAlignment()
+            ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
+        $sheet  ->getStyle("O".$row.":U".$row)
+            ->getAlignment()
+            ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
+        $sheet  ->getStyle("R".$row.":R".$row)
+            ->getAlignment()
+            ->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
+        $sheet->mergeCells("B".$row.":F".$row);
+
+        $lastName = $data['Last'];
+        $firstName = $data['First'];
+        $secondName = $data['Second'];
+        $rate = (int)$data['intermediate'];
+        $bonus = (int)$data['bonus'];
+        $examRate = 0; // TODO: get it from DB
+        $fullName = $lastName." ".$firstName." ".$secondName;
+        $totalRateValue = $rate + $examRate + $bonus;
+
+        if ($totalRateValue > 100)
+            $totalRateValue = 100;
+
+        $totalRate = '';
+        $rateOfFive = '';
+        if ($rate < 38) {
+            $totalRate = ' ';
+            $rateOfFive = 'РЅРµ СѓРґРѕРІР»';
+        } elseif (($rate >= 38) and ($examRate >= 22)) {
+            $totalRate = $totalRateValue;
+            $rateOfFive = 'СѓРґРѕРІР»';
+            if (($totalRateValue >= 75) and ($totalRateValue < 85))
+                $rateOfFive = 'С…РѕСЂ';
+            elseif ($totalRateValue >= 85)
+                $rateOfFive = 'отл';
+        }
+
+        $sheet  ->setCellValue($indPosition.$row, $index)
+            ->setCellValue($namePosition.$row, $fullName)
+            ->setCellValue($totalRatePosition.$row, $totalRate)
+            ->setCellValue($semesterRatePosition.$row, $rate)
+            ->setCellValue($bonusRatePosition.$row, $bonus)
+            ->setCellValue($examRatePosition.$row, $examRate)
+            ->setCellValue($rateOfFivePosition.$row, $rateOfFive);
     }
 	
     protected function getSheetName(&$disciplineInfo) {
diff --git a/~dev_rating/docs/template exam.xls b/~dev_rating/docs/template exam.xls
index 682553295565fb2e1931608da9f2bebac94b6c46..64d1f4aecb71304a86b2e6d26f12ca52f0dd731c 100644
Binary files a/~dev_rating/docs/template exam.xls and b/~dev_rating/docs/template exam.xls differ