From 38b7eac9cf7e4c9fbd8c270e37a67120dd76c179 Mon Sep 17 00:00:00 2001 From: aurehacks Date: Thu, 26 Nov 2015 16:21:17 +0100 Subject: [PATCH] phpExcel ajout -> export_notes --- manager/phpExcel.php | 72 +++++++++++++++++++++++++------------------- 1 file changed, 41 insertions(+), 31 deletions(-) diff --git a/manager/phpExcel.php b/manager/phpExcel.php index f0f4a30..3442d48 100755 --- a/manager/phpExcel.php +++ b/manager/phpExcel.php @@ -81,8 +81,6 @@ function xlsx_switch_lvl1($request, $answer){ } } - // A refaire, incompréhensible et beaucoup plus facile à faire C.F : export notes--> - //On enregistre ce nouveau fichier, et on lance son téléchargement $docPath = DIRECTORY_SEPARATOR.join(DIRECTORY_SEPARATOR, array("page", "excelTemplates", @@ -99,8 +97,6 @@ function xlsx_switch_lvl1($request, $answer){ $answer->docPath = $docPath; } - // <-- - // Erreur de paramètre(s) else { @@ -198,61 +194,75 @@ function xlsx_switch_lvl1($request, $answer){ - /*// EXPORTATION DE NOTES POUR UN CONTROLE DONNEE, UNE FORMATION DONNEE ET UN GROUPE DONNE + // EXPORTATION DE NOTES POUR UN CONTROLE DONNEE, UNE FORMATION DONNEE ET UN GROUPE DONNE case 'export_notes': - //vérificationd es paramètres en entrée - if(isset($request->formation) && isset($request->groupe) && isset($request->controle)){ + //vérificationd des paramètres en entrée - // Création / Activation de la feuille + if(isset($request->formation) && isset($request->groupe) && isset($request->controle) && isset($request->resultat)){ + + + // Création de la fiche $workbook = new PHPExcel(); $sheet = $workbook->getActiveSheet(); $writer = new PHPExcel_Writer_Excel2007($workbook); - $workbook->getProperties()->setTitle($request->formation." ".$request->groupe." ".$request->controle. date("d/m/Y G:m")); + // Titre du document + + $workbook->getProperties()->setTitle($request->formation.$request->groupe.$request->controle); + + // Taille des cases $sheet->getColumnDimension('A')->setWidth(20); $sheet->getColumnDimension('B')->setWidth(20); $sheet->getColumnDimension('C')->setWidth(10); - // Écriture de l'en-tête du document + // Écriture des colonnes du tableau - $sheet->setCellValue('A1',$request->formation." ".$request->groupe." ".$request->controle); + $sheet->setCellValue('A1', $request->groupe); $sheet->setCellValue('B1', date("d/m/Y G:m")); + $sheet->setCellValue('C1', $request->controle); $sheet->setCellValue('A3', 'Nom'); - $sheet->setCellValue('A4', 'Prénom'); - $sheet->setCellValue('A5', 'Note'); + $sheet->setCellValue('B3', 'Prénom'); + $sheet->setCellValue('C3', 'Note'); - $i = 6; - while(// TANT QUE IL Y A UN ELEVE) { + // Écriture des valeurs dans le document Excel - $sheet->setCellValue('A'.$i,// NOM DE LELEVE); - $sheet->setCellValue('B'.$i,// PRENOM DE LELEVE); - if(// NOTE EXISTE ) - $sheet->setCellValue('C'.$i,// NOTE DE LELEVE); - else { - $sheet->setCellValue('C'.$i,"Non noté"); + $index = 5; + foreach ( $request->resultat as $eleve ) { + + $sheet->setCellValue('A'.$index,$eleve->nom); + $sheet->setCellValue('B'.$index,$eleve->prenom); + $sheet->setCellValue('C'.$index,$eleve->note); } - $i++; - } + } + //On enregistre ce nouveau fichier, et on lance son téléchargement - // Sauvegarde du fichier sous le format .xlsx - - $writer->save( $request->formation." ".$request->groupe." ".$request->controle. date("d/m/Y G:m").'xlsx' ); - $answer->request = 'success'; + $docPath = DIRECTORY_SEPARATOR.join(DIRECTORY_SEPARATOR, array("page", "excelTemplates", + $request->formation.$request->groupe.$request->controle".xlsx")); + if(file_exists (__ROOT__.$docPath)){ + $index = 1; + $titleLen = strlen($docPath) - 5; + while(file_exists (__ROOT__.$docPath)){ + $docPath = mb_strimwidth($docPath, 0, $titleLen, "")." (".$index.").xlsx"; + $index++; + } + } + $writer->save(__ROOT__.$docPath); + $answer->docPath = $docPath; } - //Si il y a un problème dans les paramètres - + // Erreur de paramètre(s) + else { - $answer->request='param_error'; + $answer->request = 'param_error'; } break; -*/ + /***************************************************************************/ /* Importation de notes pour un contrôle, une formation et un groupe donné */