From 768f85c43ded352dda2285b91df9c7d79de7f45e Mon Sep 17 00:00:00 2001 From: moodler Date: Tue, 30 Sep 2003 13:18:09 +0000 Subject: [PATCH] Excel reports now use the new libraray ... code by Russell Jungwirth - thanks! --- mod/quiz/report/simplestat/report.php | 48 +++++++++++++++------------ 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/mod/quiz/report/simplestat/report.php b/mod/quiz/report/simplestat/report.php index be287b56ec..00b278736c 100644 --- a/mod/quiz/report/simplestat/report.php +++ b/mod/quiz/report/simplestat/report.php @@ -71,54 +71,60 @@ class quiz_report extends quiz_default_report { } } - /// If spreadsheet is wanted, produce one if ($download == "xls") { - include("$CFG->libdir/psxlsgen.php"); - $myxls = new PhpSimpleXlsGen(); - $myxls->totalcol = $count+1; + require_once("$CFG->libdir/excel/Worksheet.php"); + require_once("$CFG->libdir/excel/Workbook.php"); + header("Content-type: application/vnd.ms-excel"); + header("Content-Disposition: attachment; filename=$course->shortname ".$quiz->name.".xls" ); + header("Expires: 0"); + header("Cache-Control: must-revalidate, post-check=0,pre-check=0"); + header("Pragma: public"); + + $workbook = new Workbook("-"); + // Creating the first worksheet + $myxls = &$workbook->add_worksheet('Simple Quiz Statistics'); /// Print names of all the fields - $myxls->ChangePos(0,0); - $myxls->InsertText($quiz->name); - + $myxls->write_string(0,0,$quiz->name); + $myxls->set_column(0,0,25); + + $myxls->set_column(1,$count,9); for ($i=1; $i<=$count; $i++) { - $myxls->InsertText($i); + $myxls->write_string(0,$i,$i); } /// Print all the user data $row=1; foreach ($data as $userid => $datum) { - $myxls->ChangePos($row,0); - $myxls->InsertText("$datum->firstname $datum->lastname"); + $myxls->write_string($row,0,"$datum->firstname $datum->lastname"); for ($i=1; $i<=$count; $i++) { if (isset($datum->grades[$i])) { - $myxls->InsertNumber($datum->grades[$i]); - } else { - $myxls->InsertText(""); + $myxls->write_number($row,$i,$datum->grades[$i]); } } $row++; } /// Print all the averages - $myxls->ChangePos($row,0); - $myxls->InsertText(""); for ($i=1; $i<=$count; $i++) { - $myxls->InsertNumber($average[$i]); + $myxls->write_number($row,$i,$average[$i]); } + $formatot =& $workbook->add_format(); + // format number 10 is percent, two digit + $formatot->set_num_format(10); /// Print all the averages as percentages $row++; - $myxls->ChangePos($row,0); - $myxls->InsertText("%"); + $myxls->write_string($row,0,"%"); for ($i=1; $i<=$count; $i++) { - $percent = format_float($average[$i] * 100); - $myxls->InsertText("$percent%"); +// $percent = format_float($average[$i] * 100); +// $myxls->write_text($row,$i,"$percent%"); + $myxls->write_number($row,$i,$average[$i],$formatot); } - $myxls->SendFileName("$course->shortname $quiz->name"); + $workbook->close(); exit; } -- 2.39.5