0 order by for_tri"; $tabentetes = $objDatabase->fxGetResults($sqlentetes); // lire les données $memexcfichier=$tabResults['menu']['mem_exc_fichier']; $memexctitre=$tabResults['menu']['mem_exc_titre']; $memdata=$tabResults['data']; $memfields=$tabResults['fields']; /** Error reporting */ error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '
'); /** Include PHPExcel */ require_once dirname(__FILE__) . '/Classes/PHPExcel.php'; // Create new PHPExcel object $objPHPExcel = new PHPExcel(); // Set document properties // $objPHPExcel->getProperties()->setCreator("Maarten Balliauw") // ->setLastModifiedBy("Maarten Balliauw") // ->setTitle("PHPExcel Test Document") // ->setSubject("PHPExcel Test Document") // ->setDescription("Test document for PHPExcel, generated using PHP classes.") // ->setKeywords("office PHPExcel php") // ->setCategory("Test result file"); if (1 ==1) { $sharedStyle1 = new PHPExcel_Style(); $sharedStyle1->applyFromArray( array('fill' => array( 'type' => PHPExcel_Style_Fill::FILL_SOLID, 'color' => array('argb' => 'FF969696') ) )); $sharedStyle2 = new PHPExcel_Style(); $sharedStyle2->applyFromArray( array('fill' => array( 'type' => PHPExcel_Style_Fill::FILL_SOLID, 'color' => array('argb' => 'FFC0C0C0') ) )); $sharedStyle3 = new PHPExcel_Style(); $sharedStyle3->applyFromArray( array('fill' => array( 'type' => PHPExcel_Style_Fill::FILL_SOLID, 'color' => array('argb' => 'FFFFFF00') ) )); // Add header $c='A'; for ($intCtr2 = 1; $intCtr2 <= $tabResults['nb_fields']; $intCtr2++) { $memtitre= $tabResults['fields'][$intCtr2]['lab_texte_list'] ; $memwidth=$tabResults['fields'][$intCtr2]['for_exc_width'] ; $objPHPExcel->getActiveSheet()->getColumnDimension($c)->setWidth($memwidth); $objPHPExcel->getActiveSheet()->setCellValue($c.$mem_int_ligne_entete, ($memtitre)); $objPHPExcel->getActiveSheet()->getStyle($c.$mem_int_ligne_entete)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->setSharedStyle($sharedStyle2, $c.$mem_int_ligne_entete); ++$c; } if (1==1) { // details $mem_ligne = $mem_int_ligne_entete + 1; $mem_debut_ligne = $mem_ligne; // effacer les ligne endouble $mem_avant = ""; $mem_skip = 0; $mem_sup = 1; for ($intCtr = 1; count($memdata) >= $intCtr; $intCtr++) { // trouve le premier d'une série if (trim($tabResults["menu"]["mem_ligne_double1"]) != '') { if ($mem_avant != $tabResults['data'][$intCtr][$tabResults["menu"]["mem_ligne_double1"]]) { $mem_avant = $tabResults['data'][$intCtr][$tabResults["menu"]["mem_ligne_double1"]]; $mem_skip = 0; $mem_groupe1 = 1; $mem_max_ligne = 1; for ($intgroupe = 1; $intgroupe <= 5; $intgroupe++) { $memgroupe = "groupe_" . $intgroupe; $mem_count_groupe[$intgroupe] = 0; if (isset($tabResults[$memgroupe]['data'][$mem_avant])) { $mem_countmax_groupe[$intgroupe] = count($tabResults[$memgroupe]['data'][$mem_avant]); $mem_count_groupe[$intgroupe] = 1; } else $mem_countmax_groupe[$intgroupe] = 0; if ($mem_countmax_groupe[$intgroupe] > $mem_max_ligne) $mem_max_ligne = $mem_countmax_groupe[$intgroupe]; } } else { $mem_skip = 1; } } for ($mem_sup=1;$mem_sup<=$mem_max_ligne;$mem_sup++) { echo($mem_sup); $c = 'A'; for ($intCtr2 = 1; count($memfields) >= $intCtr2; $intCtr2++) { $mem_result=""; $mem_champaffiche = 1; // mettre la valeur dans une variable pour faire la gestion des groupe $groupecourant = $tabResults['fields'][$intCtr2]['for_groupe']; if ($groupecourant <> 0) { // $mem_champaffiche=0; $memgroupe = "groupe_" . $groupecourant; if (isset($tabResults[$memgroupe]['data'][$mem_avant][$mem_sup][$tabResults['fields'][$intCtr2]['for_field']])) $mem_result = $tabResults[$memgroupe]['data'][$mem_avant][$mem_sup][$tabResults['fields'][$intCtr2]['for_field']]; else{ $mem_champaffiche = 0; $mem_result=""; } } else { if ($mem_sup > 1 && $tabResults['fields'][$intCtr2]['for_double'] <> 1) { $mem_champaffiche = 0; $mem_result=""; }else $mem_result = $tabResults['data'][$intCtr][$tabResults['fields'][$intCtr2]['for_field']]; } // if ($mem_champaffiche == 1) { $objPHPExcel->getActiveSheet()->setCellValue($c . $mem_ligne, ($mem_result)); $objPHPExcel->getActiveSheet()->getstyle($c . $mem_ligne)->getAlignment()->setHorizontal($tabResults['fields'][$intCtr2]['for_double']['for_align']); // } ++$c; } $mem_ligne = $mem_ligne + 1; } } $mem_fin_ligne = $mem_ligne - 1; // total $c = 'A'; for ($intCtr = 1; count($memfields) >= $intCtr; $intCtr++) { if ($memfields[$intCtr]['for_somme'] == 1) { $objPHPExcel->getActiveSheet()->setCellValue($c . $mem_ligne, ('tot')); $objPHPExcel->getActiveSheet()->setCellValue($c . $mem_ligne, '=SUM(' . $c . $mem_debut_ligne . ':' . $c . $mem_fin_ligne . ')'); $objPHPExcel->getActiveSheet()->getstyle($c . $mem_ligne)->getAlignment()->setHorizontal($memfields[$intCtr]['for_align']); $objPHPExcel->getActiveSheet()->setSharedStyle($sharedStyle2, $c . $mem_ligne); } ++$c; } $mem_ligne = $mem_ligne + 1; } } $objPHPExcel->getActiveSheet()->setCellValue('A'.($mem_ligne+2),('Vous avez la responsabilité de vérifier l\'exactitude des données et des résultats du rapports.')); $objPHPExcel->getActiveSheet()->setCellValue('A'.($mem_ligne+3),('Veuillez nous avisez de toutes irrégularités n\'étant pas causées par une saisie de donnée erronnée ou manquante le plus rapidement possible.')); // Rename worksheet $objPHPExcel->getActiveSheet()->setTitle($memexctitre); // Set active sheet index to the first sheet, so Excel opens this as the first sheet $objPHPExcel->setActiveSheetIndex(0); // Save Excel 2007 file $mem_file_location= $_SERVER['DOCUMENT_ROOT'].'/data/'. $memexcfichier. '.xls'; $mem_file= $memexcfichier. '.xls'; $callStartTime = microtime(true); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save( $mem_file_location); $callEndTime = microtime(true); $callTime = $callEndTime - $callStartTime; $memurl="?fl=".$mem_file_location."&f=".$mem_file; header('location: ../php/download.php'.$memurl ); } function fxrapportexcell($men_id, $strLangue, $strorder = '', $strwhere = '', $mem_actif = 1) { global $objDatabase; $mem_int_ligne_entete = 1; error_reporting(E_ALL); //ini_set('display_errors', TRUE); // ini_set('display_startup_errors', TRUE); ini_set("memory_limit", "500M"); $intMenudecode = base64_decode(urldecode($men_id)); $tabResults = fxGetListData($men_id, $strorder, $strwhere, '', 1, $strLangue, "", $mem_actif); // lire les entetes $sqlentetes = "SELECT * FROM adm_forms f, adm_labels l WHERE f.men_id = " . $intMenudecode . " AND l.men_id = " . $intMenudecode . " AND l.lab_code = f.for_field AND l.lab_langue = '" . $strLangue . "' AND f.for_actif = 1 AND f.for_tri <> 0 ORDER BY for_tri"; $tabentetes = $objDatabase->fxGetResults($sqlentetes); // lire les donnés $memexcfichier = $tabResults['menu']['mem_exc_fichier']; $memexctitre = $tabResults['menu']['mem_exc_titre']; $memdata = $tabResults['data']; $memfields = $tabResults['fields']; define('EOL', (PHP_SAPI == 'cli') ? PHP_EOL : '
'); /** Include PHPExcel */ require_once dirname(__FILE__) . '/Classes/PHPExcel.php'; // Create new PHPExcel object $objPHPExcel = new PHPExcel(); // Set document properties // $objPHPExcel->getProperties()->setCreator("Maarten Balliauw") // ->setLastModifiedBy("Maarten Balliauw") // ->setTitle("PHPExcel Test Document") // ->setSubject("PHPExcel Test Document") // ->setDescription("Test document for PHPExcel, generated using PHP classes.") // ->setKeywords("office PHPExcel php") // ->setCategory("Test result file"); if (1 == 1) { $sharedStyle1 = new PHPExcel_Style(); $sharedStyle1->applyFromArray( array('fill' => array( 'type' => PHPExcel_Style_Fill::FILL_SOLID, 'color' => array('argb' => 'FF969696') ))); $sharedStyle2 = new PHPExcel_Style(); $sharedStyle2->applyFromArray( array('fill' => array( 'type' => PHPExcel_Style_Fill::FILL_SOLID, 'color' => array('argb' => 'FFC0C0C0') ))); $sharedStyle3 = new PHPExcel_Style(); $sharedStyle3->applyFromArray( array('fill' => array( 'type' => PHPExcel_Style_Fill::FILL_SOLID, 'color' => array('argb' => 'FFFFFF00') ))); // Add header $c = 'A'; for ($intCtr2 = 1; $intCtr2 <= $tabResults['nb_fields']; $intCtr2++) { $memtitre = $tabResults['fields'][$intCtr2]['lab_texte_list']; $memwidth = $tabResults['fields'][$intCtr2]['for_exc_width']; $objPHPExcel->getActiveSheet()->getColumnDimension($c)->setWidth($memwidth); $objPHPExcel->getActiveSheet()->setCellValue($c . $mem_int_ligne_entete, ($memtitre)); $objPHPExcel->getActiveSheet()->getStyle($c . $mem_int_ligne_entete)->getFont()->setBold(true); $objPHPExcel->getActiveSheet()->setSharedStyle($sharedStyle2, $c . $mem_int_ligne_entete); ++$c; } if (1 == 1) { // details $mem_ligne = $mem_int_ligne_entete + 1; $mem_debut_ligne = $mem_ligne; // effacer les ligne endouble $mem_avant = ""; $mem_skip = 0; $mem_sup = 1; $mem_max_ligne = 1; for ($intCtr = 1; count($memdata) >= $intCtr; $intCtr++) { // trouve le premier d'une série if (trim($tabResults["menu"]["mem_ligne_double1"]) != '') { if ($mem_avant != $tabResults['data'][$intCtr][$tabResults["menu"]["mem_ligne_double1"]]) { $mem_avant = $tabResults['data'][$intCtr][$tabResults["menu"]["mem_ligne_double1"]]; $mem_skip = 0; $mem_groupe1 = 1; $mem_max_ligne = 1; for ($intgroupe = 1; $intgroupe <= 5; $intgroupe++) { $memgroupe = "groupe_" . $intgroupe; $mem_count_groupe[$intgroupe] = 0; if (isset($tabResults[$memgroupe]['data'][$mem_avant])) { $mem_countmax_groupe[$intgroupe] = count($tabResults[$memgroupe]['data'][$mem_avant]); $mem_count_groupe[$intgroupe] = 1; } else $mem_countmax_groupe[$intgroupe] = 0; if ($mem_countmax_groupe[$intgroupe] > $mem_max_ligne) $mem_max_ligne = $mem_countmax_groupe[$intgroupe]; } } else { $mem_skip = 1; } } for ($mem_sup = 1; $mem_sup <= $mem_max_ligne; $mem_sup++) { $c = 'A'; for ($intCtr2 = 1; count($memfields) >= $intCtr2; $intCtr2++) { $mem_result = ""; $mem_champaffiche = 1; // mettre la valeur dans une variable pour faire la gestion des groupe $groupecourant = $tabResults['fields'][$intCtr2]['for_groupe']; if ($groupecourant <> 0) { // $mem_champaffiche=0; $memgroupe = "groupe_" . $groupecourant; if (isset($tabResults[$memgroupe]['data'][$mem_avant][$mem_sup][$tabResults['fields'][$intCtr2]['for_field']])) $mem_result = $tabResults[$memgroupe]['data'][$mem_avant][$mem_sup][$tabResults['fields'][$intCtr2]['for_field']]; else { $mem_champaffiche = 0; $mem_result = ""; } } else { if ($mem_sup > 1 && $tabResults['fields'][$intCtr2]['for_double'] <> 1) { $mem_champaffiche = 0; $mem_result = ""; } else $mem_result = $tabResults['data'][$intCtr][$tabResults['fields'][$intCtr2]['for_field']]; } // if ($mem_champaffiche == 1) { $objPHPExcel->getActiveSheet()->setCellValue($c . $mem_ligne, ($mem_result)); //$objPHPExcel->getActiveSheet()->getstyle($c . $mem_ligne)->getAlignment()->setHorizontal($tabResults['fields'][$intCtr2]['for_double']['for_align']); $objPHPExcel->getActiveSheet()->getstyle($c . $mem_ligne)->getAlignment()->setHorizontal($tabResults['fields'][$intCtr2]['for_align']); // } ++$c; } $mem_ligne = $mem_ligne + 1; } } $mem_fin_ligne = $mem_ligne - 1; // total $c = 'A'; for ($intCtr = 1; count($memfields) >= $intCtr; $intCtr++) { if ($memfields[$intCtr]['for_somme'] == 1) { $objPHPExcel->getActiveSheet()->setCellValue($c . $mem_ligne, ('tot')); $objPHPExcel->getActiveSheet()->setCellValue($c . $mem_ligne, '=SUM(' . $c . $mem_debut_ligne . ':' . $c . $mem_fin_ligne . ')'); $objPHPExcel->getActiveSheet()->getstyle($c . $mem_ligne)->getAlignment()->setHorizontal($memfields[$intCtr]['for_align']); $objPHPExcel->getActiveSheet()->setSharedStyle($sharedStyle2, $c . $mem_ligne); } ++$c; } $mem_ligne = $mem_ligne + 1; } } // $objPHPExcel->getActiveSheet()->setCellValue('A'.($mem_ligne+2),('Vous avez la responsabilité de vérifier l exactitude des données et des résultats du rapports.')); // $objPHPExcel->getActiveSheet()->setCellValue('A'.($mem_ligne+3),('Veuillez nous avisez de toutes irrégularités n étant pas causées par une saisie de donnée erronnée ou manquante le plus rapidement possible.')); // Rename worksheet $objPHPExcel->getActiveSheet()->setTitle($memexctitre); // Set active sheet index to the first sheet, so Excel opens this as the first sheet $objPHPExcel->setActiveSheetIndex(0); // Save Excel 2007 file $mem_file_location = $_SERVER['DOCUMENT_ROOT'] . '/data/' . $memexcfichier . '.xls'; $mem_file = $memexcfichier . '.xls'; $callStartTime = microtime(true); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save($mem_file_location); $callEndTime = microtime(true); $callTime = $callEndTime - $callStartTime; $memurl = "?fl=" . $mem_file_location . "&f=" . $mem_file; header('location: ../php/download.php' . $memurl); }