Esempio n. 1
0
 public function checkoutEpqa($examinee, $objActSheet)
 {
     $objActSheet->getDefaultRowDimension()->setRowHeight(16);
     $objActSheet->getDefaultColumnDimension()->setWidth(10);
     $objActSheet->mergeCells('A1:H1');
     $objActSheet->setCellValue('A1', '爱克森个性问卷成人 (EPQA) 结果');
     $objActSheet->getStyle('A1')->getFont()->setBold(true);
     $this->position($objActSheet, 'A1');
     $objActSheet->setCellValue('A2', '分类号');
     $this->position($objActSheet, 'A2');
     // $objActSheet->mergeCells('B2:C2');
     $objActSheet->setCellValue('C2', '编号');
     $this->position($objActSheet, 'C2');
     $objActSheet->mergeCells('D2:E2');
     $objActSheet->setCellValue('D2', $examinee->number);
     $this->position($objActSheet, 'D2');
     $objActSheet->setCellValue('F2', '姓名');
     $this->position($objActSheet, 'F2');
     $objActSheet->mergeCells('G2:H2');
     $objActSheet->setCellValue('G2', $examinee->name);
     $this->position($objActSheet, 'G2');
     $objActSheet->setCellValue('A3', '性别');
     $this->position($objActSheet, 'A3');
     //$objActSheet->mergeCells('B3:C3');
     $objActSheet->setCellValue('B3', $examinee->sex == "1" ? "男" : "女");
     $this->position($objActSheet, 'B3');
     $objActSheet->setCellValue('C3', '年龄');
     $this->position($objActSheet, 'C3');
     $objActSheet->mergeCells('D3:E3');
     $age = floor(FactorScore::calAge($examinee->birthday, $examinee->last_login));
     $this->position($objActSheet, 'D3');
     $objActSheet->setCellValue('D3', $age);
     $objActSheet->setCellValue('F3', '');
     $objActSheet->mergeCells('G3:H3');
     $objActSheet->setCellValue('G3', '');
     $objActSheet->setCellValue('A4', '日期');
     $this->position($objActSheet, 'A4');
     $objActSheet->mergeCells('B4:H4');
     $date = explode(' ', $examinee->last_login)[0];
     $objActSheet->setCellValue('B4', $date);
     $this->position($objActSheet, 'B4', 'left');
     $objActSheet->mergeCells('D4:H4');
     $styleArray = array('borders' => array('allborders' => array('style' => PHPExcel_Style_Border::BORDER_THIN)));
     $objActSheet->getStyle('A2:H4')->applyFromArray($styleArray);
     $objActSheet->mergeCells('A5:H5');
     $objActSheet->setCellValue('C6', '因子名称');
     $this->position($objActSheet, 'C6');
     $objActSheet->setCellValue('D6', '代号');
     $this->position($objActSheet, 'D6');
     $objActSheet->setCellValue('E6', '原始得分');
     $this->position($objActSheet, 'E6');
     $objActSheet->setCellValue('F6', 'T分');
     $this->position($objActSheet, 'F6');
     $startRow = 7;
     $data = CheckoutData::getEPQAdata($examinee);
     if (empty($data)) {
         return;
     }
     $lastRow = $startRow;
     $tihuan = array('epqae' => 'E', 'epqan' => 'N', 'epqap' => 'P', 'epqal' => 'L');
     foreach ($data as $value) {
         $objActSheet->setCellValue('C' . $startRow, $value['chs_name']);
         $this->position($objActSheet, 'C' . $startRow);
         $objActSheet->setCellValue('D' . $startRow, $tihuan[$value['name']]);
         $this->position($objActSheet, 'D' . $startRow);
         $objActSheet->setCellValue('E' . $startRow, $value['score']);
         $this->position($objActSheet, 'E' . $startRow);
         $objActSheet->setCellValue('F' . $startRow, $value['std_score']);
         $this->position($objActSheet, 'F' . $startRow);
         $lastRow = $startRow;
         $startRow++;
     }
     $objActSheet->getStyle('C6:F' . $lastRow)->applyFromArray($styleArray);
     $startRow++;
     $objActSheet->mergeCells('A' . $startRow . ':H' . $startRow);
     $objActSheet->setCellValue('A' . $startRow, ' 爱森克个性问卷(成人)(EPQA)各因子的含义 ');
     $this->position($objActSheet, 'A' . $startRow, 'left');
     $objActSheet->getStyle('A' . $startRow)->getFont()->setBold(true);
     $firstRow = $startRow;
     $startRow++;
     $flag = 0;
     $lastRow = $startRow;
     $pingyu_array = array("内外向" => "内外向 (E):分数特高的特点是个性外向,爱交际,喜参加联欢会,朋友多,需要有人同他谈话,不爱一人阅读和作研究,渴望兴奋的事,喜冒险,向外发展,行动受一时冲动影响。喜实际的工作,回答问题迅速,漫不经心,随和,乐观,喜欢谈笑,宁愿动而不愿静,倾向进攻。总的说来是情绪失控制的人,不是一个很踏实的人。分数特低的特点是安静,离群,内省,喜爱读书而不喜欢接触人。保守,与人保持一定距离(除非挚友),倾向于事前有计划,做事关前顾后,不凭一时冲动。不喜欢兴奋的事,日常生活有规律,严谨。很少进攻行为,多少有些悲观。踏实可靠。价值观念是以伦理做标准。", "神经质" => "神经质 (N):分数特高的特点是情绪不稳,焦虑,紧张,易怒,往往又有抑郁。睡眠不好,患有各种心身障碍。情绪过分,对各种刺激的反应都过于强烈,情绪激发后又很难平复下来。由于强烈的情绪反应而影响了他的正常适应。不可理喻,甚至有时走上危险道路。在与外向结合时,这种人是容易冒火的和不休息的,以至激动,进攻。概括地说,是一个紧张的人,好抱偏见,以至错误。分数特低的特点是倾向于情绪反应缓慢,弱,即使激起了情绪也很快平复下来。通常是平静的,即使生点气也是有节制的,并且不紧张。", "精神质" => "精神质 (P):分数高的成人的特点是独身,不关心人,常有些麻烦,在哪里都不合适。可能是残忍的,不人道的,缺乏同情心,感觉迟钝。对人抱敌意,即令是对亲友也如此。进攻,即使是喜爱的人。喜欢一些古怪的不平常的事情,不惧安危,喜恶作剧,总要捣乱。", "掩饰性" => "掩饰性 (L):测定被试的“掩饰”倾向,即不真实的回答。同时也有测量被试的纯朴性的作用。它没有划分有无掩饰的确切标准,要看所测样本的一般水平以及被试的年龄。一般来说,成人的L分因年龄而升高,儿童则因年龄而减低。");
     foreach ($data as $value) {
         //每个因子合并三行
         $next_plus = 0;
         if ($value['chs_name'] == "内外向") {
             $next_plus = 7;
         } else {
             if ($value['chs_name'] == "神经质") {
                 $next_plus = 6;
             } else {
                 if ($value['chs_name'] == "精神质") {
                     $next_plus = 3;
                 } else {
                     $next_plus = 3;
                 }
             }
         }
         $objActSheet->mergeCells('A' . $startRow . ':H' . ($startRow + $next_plus));
         $objActSheet->setCellValue('A' . $startRow, $pingyu_array[$value['chs_name']]);
         $this->position($objActSheet, 'A' . $startRow, 'left');
         $objActSheet->getStyle('A' . $startRow)->getAlignment()->setWrapText(true);
         $startRow += $next_plus;
         $lastRow = $startRow;
         $startRow++;
     }
     $string = "以上所列特点是极端例子,实际上很少有如此典型的人,大多是两极端之间,不过是倾向某一端而已。在解释时应注意,正常人也具有神经质和精神质,高级神经的活动如果在不利因素影响下向病理方面发展,神经质可以发展成神经症,精神质可以发展成精神病。因此,神经质和精神质并不是病理的,不过有些精神病和罪犯是在前者的基础上发展来的。";
     $firstRow = $startRow;
     $objActSheet->mergeCells('A' . $startRow . ':H' . ($startRow + 4));
     $objActSheet->setCellValue('A' . $startRow, $string);
     $this->position($objActSheet, 'A' . $startRow, 'left');
     $objActSheet->getStyle('A' . $startRow)->getAlignment()->setWrapText(true);
     $startRow += 4;
     $lastRow = $startRow;
     $startRow++;
     $objActSheet->getStyle('A' . $firstRow . ':H' . $lastRow)->applyFromArray($styleArray);
     $startRow += 8;
     $objActSheet->mergeCells("A" . $startRow . ":H" . $startRow);
     $objActSheet->setCellValue('A' . $startRow, '爱克森个性问卷成人 (EPQA) 结果剖析	');
     $this->position($objActSheet, 'A' . $startRow);
     $objActSheet->getStyle('A' . $startRow)->getFont()->setBold(true);
     $startRow++;
     $filePath = WordChart::scatter_horiz_Graph_epqa_1($data, $examinee);
     $objDrawing = new PHPExcel_Worksheet_Drawing();
     $objDrawing->setPath($filePath);
     $width = 14.48 * 39;
     $height = 5.48 * 39;
     $objDrawing->setWidthAndHeight($width, $height);
     $objDrawing->setCoordinates("A" . $startRow);
     $objDrawing->setWorksheet($objActSheet);
     $startRow += 12;
     //edit bruce_w 2015-12-9 分页打印
     $filePath = WordChart::scatter_horiz_Graph_epqa_2($data, $examinee);
     $objDrawing1 = new PHPExcel_Worksheet_Drawing();
     $objDrawing1->setPath($filePath);
     $width = 14.92 * 38;
     $height = 12.49 * 38;
     $objDrawing1->setWidthAndHeight($width, $height);
     $objDrawing1->setCoordinates("A" . $startRow);
     $objDrawing1->setWorksheet($objActSheet);
 }