php excel

php excel - Programmation

Marsh Posté le 16-07-2001 à 17:06:58    

Comment peut-on faire pour passer d'un tableau ss php en une table excel
enfin que l'on puisse lire facilement sous excel
 
et est-il possible de lancer depuis php excel et qu'il ouvre ce tableau pour l'utiliser sous excel

Reply

Marsh Posté le 16-07-2001 à 17:06:58   

Reply

Marsh Posté le 16-07-2001 à 17:16:17    

Rappel, PHP tourne sur le serveur !  :sarcastic:  
Excel tourne sur le client !  :crazy:  
 
C'est donc pas un PB PHP, voir plutot coté javascript pour ouvrir EXCEL.  :pt1cable:  
 
Pour générer quelquechose de compréhensible par excel, génère un document HTML contenant un tableau HTML. Si cet pas trop compliqué, çà devrait passer pas trop mal  ;)


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 16-07-2001 à 17:24:42    

et après ton tableau html tu fais koi?

Reply

Marsh Posté le 16-07-2001 à 17:25:30    

tulouvreavacexcel


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 16-07-2001 à 17:27:59    

j'ai creer un tableau html masi avec du php il ya une possibilité de faire quelque chose?

Reply

Marsh Posté le 16-07-2001 à 17:39:42    

EXEMPLE :

Code :
  1. <?php
  2. $buff = ("<TABLE>\n" );
  3. $buff .= ("\t<TR>\n" );
  4. $buff .= ("\t\t<TD>Nom</TD>\n" );
  5. $buff .= ("\t\t<TD>Prenom</TD>\n" );
  6. $buff .= ("\t\t<TD>age</TD>\n" );
  7. $buff .= ("\t</TR>\n" );
  8. $buff .= ("\t<TR>\n" );
  9. $buff .= ("\t\t<TD>TOTO</TD>\n" );
  10. $buff .= ("\t\t<TD>titi</TD>\n" );
  11. $buff .= ("\t\t<TD>10</TD>\n" );
  12. $buff .= ("\t</TR>\n" );
  13. $buff .= ("\t<TR>\n" );
  14. $buff .= ("\t\t<TD>TOTO</TD>\n" );
  15. $buff .= ("\t\t<TD>tata</TD>\n" );
  16. $buff .= ("\t\t<TD>21</TD>\n" );
  17. $buff .= ("\t</TR>\n" );
  18. $buff .= ("\t<TR>\n" );
  19. $buff .= ("\t\t<TD>TUTU</TD>\n" );
  20. $buff .= ("\t\t<TD>tati</TD>\n" );
  21. $buff .= ("\t\t<TD>15</TD>\n" );
  22. $buff .= ("\t</TR>\n" );
  23. $buff .= ("</TABLE>\n" );
  24. $f = fopen("toto.xls", "wb" );
  25. if( fwrite( $f, $buff, strlen($buff)))
  26. {
  27. fclose( $f );
  28. echo( "<a href=\"toto.xls\">Toto.xls</a>" );
  29. }
  30. else
  31. echo "Problème d'écriture de fichier !";
  32. ?>


 
Si tu clique sur le lien Toto.xls, dans IE, il téléchage le fichier et l'ouvre dans une fenêtre EXCEL ! ! !


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 16-07-2001 à 17:51:19    

merci

Reply

Marsh Posté le 19-07-2001 à 12:21:49    

cela fti koi lezs \t et les \n

Reply

Marsh Posté le 19-07-2001 à 12:21:50    

cela fti koi lezs \t et les \n

Reply

Marsh Posté le 19-07-2001 à 12:32:55    

le \t représente la tabulation, et il me semble que le \n et le retour chariot. je crois qu'il se code de plusieurs façon( \n, \r\n, \r)...
A qqchose près çà doit être çà...

Reply

Marsh Posté le 19-07-2001 à 12:32:55   

Reply

Marsh Posté le 19-07-2001 à 14:17:15    

séquence valeur  
\n Nouvelle ligne (linefeed, LF ou 0x0A en ASCII)  
\r Retour à la ligne(carriage return, CR ou 0x0D en ASCII)  
\t Tabulation horizontale (HT ou 0x09 en ASCII)  
\\ Antislash  
\$ Caractère $  
\" Guillemet double  
\[0-7]{1,3} Une séquence de caractère qui permet de rechercher un nombre en notation octale.  
\x[0-9A-Fa-f]{1,2} Une séquence de caractère qui permet de rechercher un nombre en notation hexadécimale.  
 
VOLA SKE CA FEZ !
 
Non, mais franchement, vous trouvez pas que c'est chiant à lire cette façon d'écrire !
Z'avez pu 8 ans !
 
Faites un peu gaffe quand même ! Ayez un peu de respect pour ceux qui vous lisent, surtout si c'est pour vous aider !
 
ONNESTPASSURBLABLA!


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 20-07-2001 à 10:07:30    

un petit probleme cela doit etre un pb de variable  
 
/***************************/
//Entete du tableau
$buff = ("<TABLE>\n" );
$buff .= ("\t<TR>\n" );
foreach ($champs as $ele)
  {  
    $buff .= ("\t\t<TD>$tabcor[0][$ele]</TD>\n" );
  }
$buff .= ("\t</TR>\n" );
 
 
/***************************/
//Corps du tableau
 
$i=0;
while ($i < $nbligne)
  {
    $buff .= ("\t<TR>\n" );  
    $j=0;  
    while ($j < $nbcol)
      {    
        $buff .= ("\t\t<TD>$monTableau[$i][$j]</TD>\n" );
    $j++;
      }
    $buff .= ("\t</TR>\n" );
    $i++;
  }
 
$buff .= ("</TABLE>\n" );
 
 
//Enregistrement du tableau
 
$f = fopen("toto.xls", "wb" );
if( fwrite( $f, $buff, strlen($buff)))
{
fclose( $f );
echo( "<a href=\"toto.xls\">Toto.xls</a>" );
}
else
echo "Problème d'écriture de fichier !";
 
?>

Reply

Marsh Posté le 20-07-2001 à 13:50:20    

up

Reply

Marsh Posté le 20-07-2001 à 16:54:53    

Qu'est ce qu'y va pas dans mon truc?

Reply

Marsh Posté le 20-07-2001 à 17:03:02    

Ben c'est quoi le problème ?
 
Y'a un message d'erreur ?
 
Y se passe quoi ?
 
Met des echo() de temp en temp pour debugger...


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 20-07-2001 à 17:08:44    

bne j'arrive avec un tableau où il array[]
avec l'indice dans le tableau qui est bon

Reply

Marsh Posté le 20-07-2001 à 17:10:10    

bob2674 a écrit a écrit :

bne j'arrive avec un tableau où il array[]
avec l'indice dans le tableau qui est bon  




Y'a un traducteur pour çà dans la salle ?


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 20-07-2001 à 17:11:19    

cela me donne cela
Array[KNGC01.GCPHLFAC.GNUFAC]
Array[0]
Array[0]
Array[0]
Array[0]

Reply

Marsh Posté le 20-07-2001 à 17:12:47    

au lieu de  
numéro facture  
1  
1  
1  
1

Reply

Marsh Posté le 20-07-2001 à 17:19:15    

Alors, çà veux dire que t'as une dimension en plus dans tes tableaux $tabcor et $monTableau
 
Si tu remplace par :
$tabcor[0][$ele]["KNGC01.GCPHLFAC.GNUFAC"]
et
$monTableau[$i][$j][0]
 
Ca fait quoi ?


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 20-07-2001 à 17:32:06    

dans cette page j'ai tt ce code et le tableau marche dans la première partie mais pas pour excel pourkoi?
 
/******************************************************************/
/*                    affichage du tableau                        */
/******************************************************************/
 
 
echo "<TABLE BORDER=$border cellspacing=$cellspacing align=$align>";
 
 
$champs= explode (",",$champs);
 
 
/***************************/
//Entete du tableau
 
echo "<TR bgcolor=$coul_tab_ent>";
foreach ($champs as $ele)
   {  
     echo "<TD><font color=$coul_font_1>";
     print ($tabcor[0][$ele]);
     echo"</font></TD>";
   }
echo "</TR>";
 
 
/***************************/
//Corps du tableau
   
$i=0;
while ($i < $nbligne)
  {
    if ($i%2)
      echo "<TR BGCOLOR=$coul_tab_1>";
    else
      echo "<TR bgcolor=$coul_tab_2>";
   
   
    $j=0;  
    while ($j < $nbcol)
      {
        if ($j%2)
           echo "<TD><FONT COLOR=$coul_font_1>";  
        else  
    echo "<TD><FONT COLOR=$coul_font_2>";  
 
        echo $monTableau[$i][$j];
        echo "</FONT></TD>";
    $j++;
      }
    echo "</TR>";
    $i++;
  }
 
// FIN DU TABLEAU
 
//echo "</table></body>";
echo "</table>";
?>  
 
 
 
 
<?
/******************************************************************/
/*          enregistrement du tableau au format excel             */
/*************************************************
*****************/
 
 
/***************************/
//Entete du tableau
$buff = ("<TABLE>\n" );
$buff .= ("\t<TR>\n" );
foreach ($champs as $ele)
  {  
    $buff .= ("\t\t<TD>$tabcor[0][$ele]</TD>\n" );
  }
$buff .= ("\t</TR>\n" );
 
 
/***************************/
//Corps du tableau
 
$i=0;
while ($i < $nbligne)
  {
    $buff .= ("\t<TR>\n" );  
    $j=0;  
    while ($j < $nbcol)
      {    
        $buff .= ("\t\t<TD>$monTableau[$i][$j]</TD>\n" );
    $j++;
      }
    $buff .= ("\t</TR>\n" );
    $i++;
  }
 
$buff .= ("</TABLE>\n" );
 
 
//Enregistrement du tableau
 
$f = fopen("toto.xls", "wb" );
if( fwrite( $f, $buff, strlen($buff)))
{
fclose( $f );
echo( "<a href=\"toto.xls\">Toto.xls</a>" );
}
else
echo "Problème d'écriture de fichier !";
 
?>
 
 
 
 
 
<?
 
echo "<FORM action='excel.php' method='post'>";
 
// affiche le bouton ok
echo "<BR>
      <INPUT type=SUBMIT VALUE='OK'> ";
echo "</FORM></body>";
?>

Reply

Marsh Posté le 20-07-2001 à 17:40:30    

Je viens de comprendre en faisant des essais !
 
si $a=array( "a", "b", array( "c, "d" ) );
 
Alors j'ai :
$a[0] = "a"
$a[1] = "b"
$a[2][0] = "c"
$a[2][1] = "d"
 
Ok jusque là !
 
Si je fais
$i=0;
echo( "<TD>$a[$i]</TD>" );
il fait bien : <TD>a</TD>
 
mais si je fais
$i=2;
echo( "<TD>$a[0][$i]</TD>" );
ALORS, il fait : <TD>Array[2]</TD> ! ! !
 
Conclusion :
Ecrit : $buff .= ("\t\t<TD>" . $monTableau[$i][$j] . "</TD>\n" );  
et : $buff .= ("\t\t<TD>" . $monTableau[$i][$j] . "</TD>\n" );  
   
Tordu le truc !
Un bug dans PHP ? ? ?


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 20-07-2001 à 17:44:21    

Explication complémentaire :
 
$i=2;  
echo( "<TD>$a[0][$i]</TD>" );  
ALORS, il fait : <TD>Array[2]</TD> ! ! !  
 
C'est à dire "<TD>" puis valeur de $a[0] qui est bien "Array" ($a[0] est un tableau), puis plus loin "[" puis la valeur de $i, soit "2" et enfin "]</TD>" ce qui fait bien <TD>Array[2]</TD>


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 20-07-2001 à 17:55:34    

en effet très bizarre merci pour ton explication
par contre normalement cela ne devrait pas ouvrir excel?
et j'ai un problème si je rappelle cette page avec un autre tableau il l'affiche que l'ancien

Reply

Marsh Posté le 20-07-2001 à 18:22:05    

Ben moi, il ouvre pas vraiement Excel, il ouvre une "feuille" excel dans la fenêtre d'IE.
IE 5.0
NT 4.0
EXCEL 2000
 
Pour l'ancien tableau, c'est un pb de cache.
J'ai essayé tous les headers possible, et autres META TAGS, IE veux rien savoir !
Donc, dans IE, j'ai mis comme option "A chaque visite de la page" !
Mais c'est pas une solution !


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 20-07-2001 à 21:52:06    

il n'y a pas un moyen poyur ouvrir excel alors?
et il faut que je mette pour chaque client à chque visite de page?

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed