Valid XHTML    Valid CSS2    

Listing du fichier l2aprog11.php

 

00001     <?php
00002     
00003     
# (gH) -_- l2aprog04.php ; TimeStamp (unix) : 07 Mars 2013 vers 17:58
00004     
00005     
error_reporting(E_ALL | E_NOTICE | E_STRICT ) ;
00006     
00007     
###########################################################################
00008     # #
00009     # exemple de programme php pour le cours Développement Web Avancé en L2 #
00010     # #
00011     ###########################################################################
00012     # #
00013     # #
00014     # Gestion de ficher-Excel fourni par formulaire #
00015     # #
00016     # #
00017     ###########################################################################
00018     
00019     # lecture d'un fichier Excel à l'aide de excel_reader2_ghv3.php
00020     # adapté du Google-code :
00021     #
00022     # http://code.google.com/p/php-excel-reader/
00023     #
00024     # Voir http://forge.info.univ-angers.fr/~gh/Idas/Ccd/mcps/
00025     # comme exemple d'utilisation
00026     
00027     
$dbgLecXls
= 0 ; # 0 en normal, 1 pour debug
00028     
if (
$dbgLec == 1) { $dbgLecXls = 1 ; } ;
00029     
$errXls
= 0 ;
00030     
00031     
$tmpfile
= tempnam("/tmp","mcpsdata") ;
00032     
00033     
# il faut vérifier que le fichier existe,
00034      # que c'est un document XLS avec les bonnes infos
00035     
00036     
$xlsfile
= $_FILES["dataxls"]["tmp_name"] ;
00037     
00038      if (
$dbgLecXls
== 1) {
00039     
pre() ;
00040      echo
" xls :
$xlsfile \n" ;
00041      } ;
# fin si
00042     
00043     
if (
file_exists($xlsfile)) {
00044     
#$contenuXML = file_get_contents($xmlfile) ;
00045      # echo htmlentities($contenuXML) ;
00046     
if (
$dbgLecXls == 1) {
00047      echo
" vu !\n" ;
00048      } ;
# fin si
00049     
} else {
00050      if (
$dbgLecXls
== 1) {
00051      echo
" pas vu \n" ;
00052      } ;
# fin si
00053     
$errXls++ ;
00054      } ;
# fin si
00055     
00056     
if (
$dbgLecXls == 1) {
00057     
finpre() ;
00058      } ;
# fin si
00059     
00060     
if (
$errXls>0) {
00061      return(array(
$xmlfile
,$nbg,$nbe,$nbc,$tGrp,$tCol,$tLig,$g2Gname,$c2Cname)) ;
00062      } ;
# finsi
00063     
00064     
try {
00065     
$mcpsXls
= new Spreadsheet_Excel_Reader($xlsfile) ;
00066      } catch (
Exception $err) {
00067      }
# fin de cath
00068     
00069      # mode DDEBUG :
00070      # pre() ;
00071      # print_r($mcpsXls) ;
00072      # finpre() ;
00073     
00074     
$nfData
= getSheetIndex($mcpsXls,"Data") ;
00075      if ((
$nfData
<0) or (strlen(trim($nfData))==0)) {
00076     
$errXls++ ;
00077      if (
$lng
=="fr") {
00078     
h2
("Feuille/Onglet nommée \"Data\" non vu dans votre fichier Excel.","grouge") ;
00079      } else {
00080     
h2
("Sheet named \"Data\" not found in your Excel file.","grouge") ;
00081      } ;
# finsi
00082     
} else {
00083      if (
$dbgLecXls
== 1) {
00084     
h2
("Feuille/Onglet \"Data\" vu en position $nfData","gvert") ;
00085      } ;
# fin si
00086     
} ; # fin si
00087     
00088     
$nfGroup
= "" ;
00089     
$nfGroup1
= getSheetIndex($mcpsXls,"Groups") ;
00090     
$nfGroup2
= getSheetIndex($mcpsXls,"Groupes") ;
00091      if (
$nfGroup1
) { $nfGroup = $nfGroup1 ; } ;
00092      if (
$nfGroup2
) { $nfGroup = $nfGroup2 ; } ;
00093     
00094      if ((
$nfGroup
<0) or (strlen(trim($nfGroup))==0)) {
00095     
$errXls++ ;
00096      if (
$lng
=="fr") {
00097     
h2
("Feuille/Onglet nommée \"Groupes\" ou \"Groups\" non vu dans votre fichier Excel.","grouge") ;
00098      } else {
00099     
h2
("Sheet named \"Groupes\" ou \"Groups\" not found in your Excel file.","grouge") ;
00100      } ;
# finsi
00101     
} else {
00102      if (
$dbgLecXls
== 1) {
00103     
h2
("Feuille/Onglet \"Groupes\" ou \"Groups\" vu en position $nfGroup","gvert") ;
00104      } ;
# fin si
00105     
} ; # fin si
00106     
00107     
if (
$errXls>0) {
00108      return(array(
$xmlfile
,$nbg,$nbe,$nbc,$tGrp,$tCol,$tLig,$g2Gname,$c2Cname)) ;
00109      } ;
# finsi
00110     
00111     
if (
$dbgLecXls == 1) {
00112     
pre
("cadre") ;
00113      echo
" == onglet Groupes index
$nfGroup \n" ;
00114     
print_r
($mcpsXls -> boundsheets[$nfData]) ;
00115      } ;
# fin si
00116     
00117      ## echo " clé $key valeur ".$item['name']." \n" ;
00118     
00119     
$outs = array();
00120     
$sheet
= $nfGroup ;
00121      for(
$row
=1; $row<=$mcpsXls->rowcount($sheet); $row++) {
00122     
$outs_inner = array();
00123      for(
$col
=1; $col<=$mcpsXls->colcount($sheet); $col++) {
00124     
// Account for Rowspans/Colspans
00125     
$rowspan
= $mcpsXls->rowspan($row, $col, $sheet);
00126     
$colspan
= $mcpsXls->colspan($row, $col, $sheet);
00127      for(
$i
=0; $i<$rowspan; $i++) {
00128      for(
$j
=0; $j<$colspan; $j++) {
00129     
$mcpsXls
->sheets[$sheet]['cellsInfo'][$row+$i][$col+$j]['dontprint']=0;
00130      if (
$i
>0 || $j>0) {
00131     
$mcpsXls
->sheets[$sheet]['cellsInfo'][$row+$i][$col+$j]['dontprint']=1;
00132      }
00133      }
00134      }
# fin pour chaque ligne
00135     
00136      #if (isset($mcpsXls->sheets[$sheet]['cellsInfo'][$row][$col]['dontprint'])) {
00137     
if (!
$mcpsXls->sheets[$sheet]['cellsInfo'][$row][$col]['dontprint']) {
00138     
$val
= $mcpsXls->val($row, $col, $sheet);
00139     
$val
= ($val=='')?'':addslashes(htmlentities($val));
00140     
00141     
$outs_inner
[] = "\"{$val}\""; # Quote or not?
00142     
00143      #$outs_inner[] = $val;
00144     
}
00145     
#}
00146     
} ; # fin pour chaque colonne
00147     
$outs
[] = implode(',', $outs_inner);
00148      } ;
# fin pour chaque ligne
00149     
$out
= implode("\r\n", $outs);
00150     
# print_r($out) ;
00151     
$outTab
= preg_split("/\n/",$out) ;
00152     
# print_r($outTab) ;
00153     
00154     
$tGrp = array() ;
00155     
$g2Gname = array() ;
00156     
$nbl
= count($outTab) ;
00157      for (
$idl
=0;$idl<$nbl;$idl++) {
00158     
# echo " ligne $idl \n" ;
00159     
$ligTab
= preg_split("/,/",$outTab[$idl]) ;
00160     
$nbe
= count($ligTab) ;
00161     
$numG
= trim(strtr($ligTab[0],'"',' ')) ;
00162     
# echo " en position 0 on a $numG \n" ;
00163     
if (
is_numeric($numG)) {
00164     
$valGrp
= "" ;
00165      for (
$ide
=1;$ide<$nbe;$ide++) {
00166     
$eltG
= trim(strtr($ligTab[$ide],'"',' ')) ;
00167     
$eltG
= preg_replace("/\s+/","_",trim(strtr($ligTab[$ide],'"',' '))) ;
00168     
$valGrp
.= trim(strtr($eltG,"\n"," "))." " ;
00169      } ;
# fin pour chaque élément dans la ligne
00170     
$nomGxls
= "g$numG" ;
00171     
$tGrp
[$numG] = $nomGxls ;
00172     
$g2Gname
[$nomGxls] = $valGrp ;
00173      } ;
# fin si
00174     
} ; # fin pour chaque ligne
00175     
if (
$dbgLecXls == 1) {
00176      echo
" -- tGrp est : \n" ;
00177     
print_r
($tGrp) ;
00178      } ;
# fin si
00179     
$nbg
= $numG ;
00180     
00181     
?>

Pour ne pas voir les numéros de ligne, ajoutez &nl=non à la suite du nom du fichier.

 

 

retour gH    Retour à la page principale de   (gH)