diff --git a/main/tracking/exams.php b/main/tracking/exams.php index 16958f44e2..1219969aa2 100755 --- a/main/tracking/exams.php +++ b/main/tracking/exams.php @@ -5,7 +5,7 @@ * @package chamilo.tracking */ require_once '../inc/global.inc.php'; -require_once api_get_path(LIBRARY_PATH).'pear/Spreadsheet_Excel_Writer/Writer.php'; +//require_once api_get_path(LIBRARY_PATH).'pear/Spreadsheet_Excel_Writer/Writer.php'; $toolTable = Database::get_course_table(TABLE_TOOL_LIST); $quizTable = Database::get_course_table(TABLE_QUIZ_TEST); @@ -367,7 +367,7 @@ if (!$exportToXLS) { echo $html; } -$filename = 'exam-reporting-'.api_get_local_time().'.xls'; +$filename = 'exam-reporting-'.api_get_local_time().'.xlsx'; if ($exportToXLS) { if ($global) { @@ -398,66 +398,75 @@ function sort_user($a, $b) { */ function export_complete_report_xls($filename, $array) { - global $charset, $global, $filter_score; - $workbook = new Spreadsheet_Excel_Writer(); - $workbook ->setTempDir(api_get_path(SYS_ARCHIVE_PATH)); - $workbook->send($filename); - $workbook->setVersion(8); // BIFF8 - $worksheet =& $workbook->addWorksheet('Report'); - //$worksheet->setInputEncoding(api_get_system_encoding()); - $worksheet->setInputEncoding($charset); + global $global, $filter_score; + $spreadsheet = new PHPExcel(); + $spreadsheet->setActiveSheetIndex(0); + + $worksheet = $spreadsheet->getActiveSheet(); $line = 0; $column = 0; //skip the first column (row titles) if ($global) { - $worksheet->write($line, $column, get_lang('Courses')); + $worksheet->SetCellValueByColumnAndRow($line, $column, get_lang('Courses')); $column++; - $worksheet->write($line, $column, get_lang('Exercises')); + $worksheet->SetCellValueByColumnAndRow($line, $column, get_lang('Exercises')); $column++; - $worksheet->write($line, $column, get_lang('ExamTaken')); + $worksheet->SetCellValueByColumnAndRow($line, $column, get_lang('ExamTaken')); $column++; - $worksheet->write($line, $column, get_lang('ExamNotTaken')); + $worksheet->SetCellValueByColumnAndRow($line, $column, get_lang('ExamNotTaken')); $column++; - $worksheet->write($line, $column, sprintf(get_lang('ExamPassX'), $filter_score) . '%'); + $worksheet->SetCellValueByColumnAndRow($line, $column, sprintf(get_lang('ExamPassX'), $filter_score) . '%'); $column++; - $worksheet->write($line, $column, get_lang('ExamFail')); + $worksheet->SetCellValueByColumnAndRow($line, $column, get_lang('ExamFail')); $column++; - $worksheet->write($line, $column, get_lang('TotalStudents')); + $worksheet->SetCellValueByColumnAndRow($line, $column, get_lang('TotalStudents')); $column++; $line++; foreach ($array as $row) { $column = 0; foreach ($row as $item) { - $worksheet->write($line,$column,html_entity_decode(strip_tags($item))); + $worksheet->SetCellValueByColumnAndRow($line, $column, html_entity_decode(strip_tags($item))); $column++; } $line++; } $line++; } else { - $worksheet->write($line,$column,get_lang('Exercises')); + $worksheet->SetCellValueByColumnAndRow($line,$column,get_lang('Exercises')); $column++; - $worksheet->write($line,$column,get_lang('User')); + $worksheet->SetCellValueByColumnAndRow($line,$column,get_lang('User')); $column++; - $worksheet->write($line,$column,get_lang('Percentage')); + $worksheet->SetCellValueByColumnAndRow($line,$column,get_lang('Percentage')); $column++; - $worksheet->write($line,$column,get_lang('Status')); + $worksheet->SetCellValueByColumnAndRow($line,$column,get_lang('Status')); $column++; - $worksheet->write($line,$column,get_lang('Attempts')); + $worksheet->SetCellValueByColumnAndRow($line,$column,get_lang('Attempts')); $column++; $line++; foreach ($array as $row) { $column = 0; - $worksheet->write($line,$column,html_entity_decode(strip_tags($row['exercise']))); + $worksheet->SetCellValueByColumnAndRow( + $line, + $column, + html_entity_decode(strip_tags($row['exercise'])) + ); $column++; foreach ($row['users'] as $key=>$user) { $column = 1; - $worksheet->write($line,$column,html_entity_decode(strip_tags($user))); + $worksheet->SetCellValueByColumnAndRow( + $line, + $column, + html_entity_decode(strip_tags($user)) + ); $column++; foreach ($row['results'][$key] as $result_item) { - $worksheet->write($line,$column,html_entity_decode(strip_tags($result_item))); + $worksheet->SetCellValueByColumnAndRow( + $line, + $column, + html_entity_decode(strip_tags($result_item)) + ); $column++; } $line++; @@ -465,7 +474,11 @@ function export_complete_report_xls($filename, $array) } $line++; } - $workbook->close(); + + $file = api_get_path(SYS_ARCHIVE_PATH).api_replace_dangerous_char($filename); + $writer = new PHPExcel_Writer_Excel2007($spreadsheet); + $writer->save($file); + DocumentManager::file_send_for_download($file, false, $filename); exit; }