phpExcel ajout -> export_notes

This commit is contained in:
aurehacks 2015-11-26 16:21:17 +01:00
parent c992157db7
commit 38b7eac9cf
1 changed files with 41 additions and 31 deletions

View File

@ -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 //On enregistre ce nouveau fichier, et on lance son téléchargement
$docPath = DIRECTORY_SEPARATOR.join(DIRECTORY_SEPARATOR, array("page", "excelTemplates", $docPath = DIRECTORY_SEPARATOR.join(DIRECTORY_SEPARATOR, array("page", "excelTemplates",
@ -99,8 +97,6 @@ function xlsx_switch_lvl1($request, $answer){
$answer->docPath = $docPath; $answer->docPath = $docPath;
} }
// <--
// Erreur de paramètre(s) // Erreur de paramètre(s)
else { 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': case 'export_notes':
//vérificationd es paramètres en entrée //vérificationd des paramètres en entrée
if(isset($request->formation) && isset($request->groupe) && isset($request->controle)){
// 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(); $workbook = new PHPExcel();
$sheet = $workbook->getActiveSheet(); $sheet = $workbook->getActiveSheet();
$writer = new PHPExcel_Writer_Excel2007($workbook); $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('A')->setWidth(20);
$sheet->getColumnDimension('B')->setWidth(20); $sheet->getColumnDimension('B')->setWidth(20);
$sheet->getColumnDimension('C')->setWidth(10); $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('B1', date("d/m/Y G:m"));
$sheet->setCellValue('C1', $request->controle);
$sheet->setCellValue('A3', 'Nom'); $sheet->setCellValue('A3', 'Nom');
$sheet->setCellValue('A4', 'Prénom'); $sheet->setCellValue('B3', 'Prénom');
$sheet->setCellValue('A5', 'Note'); $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); $index = 5;
$sheet->setCellValue('B'.$i,// PRENOM DE LELEVE); foreach ( $request->resultat as $eleve ) {
if(// NOTE EXISTE )
$sheet->setCellValue('C'.$i,// NOTE DE LELEVE); $sheet->setCellValue('A'.$index,$eleve->nom);
else { $sheet->setCellValue('B'.$index,$eleve->prenom);
$sheet->setCellValue('C'.$i,"Non noté"); $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 $docPath = DIRECTORY_SEPARATOR.join(DIRECTORY_SEPARATOR, array("page", "excelTemplates",
$request->formation.$request->groupe.$request->controle".xlsx"));
$writer->save( $request->formation." ".$request->groupe." ".$request->controle. date("d/m/Y G:m").'xlsx' ); if(file_exists (__ROOT__.$docPath)){
$answer->request = 'success'; $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 { else {
$answer->request='param_error'; $answer->request = 'param_error';
} }
break; break;
*/
/***************************************************************************/ /***************************************************************************/
/* Importation de notes pour un contrôle, une formation et un groupe donné */ /* Importation de notes pour un contrôle, une formation et un groupe donné */