Replace Spreadsheet_Excel_Writer/Writer with PHPExcel. (tests)

1.10.x
Julio Montoya 11 years ago
parent 2d8a2ac58d
commit 4c887a5f43
  1. 67
      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;
}

Loading…
Cancel
Save