Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1032 connectés 

  FORUM HardWare.fr
  Programmation

  php excel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

php excel

n°47023
bob2674
Posté le 16-07-2001 à 17:06:58  profilanswer
 

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

mood
Publicité
Posté le 16-07-2001 à 17:06:58  profilanswer
 

n°47029
Mara's dad
Yes I can !
Posté le 16-07-2001 à 17:16:17  profilanswer
 

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é.
n°47036
bob2674
Posté le 16-07-2001 à 17:24:42  profilanswer
 

et après ton tableau html tu fais koi?

n°47037
Mara's dad
Yes I can !
Posté le 16-07-2001 à 17:25:30  profilanswer
 

tulouvreavacexcel


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°47039
bob2674
Posté le 16-07-2001 à 17:27:59  profilanswer
 

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

n°47049
Mara's dad
Yes I can !
Posté le 16-07-2001 à 17:39:42  profilanswer
 

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é.
n°47057
bob2674
Posté le 16-07-2001 à 17:51:19  profilanswer
 

merci

n°47825
bob2674
Posté le 19-07-2001 à 12:21:49  profilanswer
 

cela fti koi lezs \t et les \n

n°47826
bob2674
Posté le 19-07-2001 à 12:21:50  profilanswer
 

cela fti koi lezs \t et les \n

n°47829
_naoua
Posté le 19-07-2001 à 12:32:55  profilanswer
 

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 çà...

mood
Publicité
Posté le 19-07-2001 à 12:32:55  profilanswer
 

n°47854
Mara's dad
Yes I can !
Posté le 19-07-2001 à 14:17:15  profilanswer
 

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é.
n°48011
bob2674
Posté le 20-07-2001 à 10:07:30  profilanswer
 

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 !";
 
?>

n°48046
bob2674
Posté le 20-07-2001 à 13:50:20  profilanswer
 

up

n°48101
bob2674
Posté le 20-07-2001 à 16:54:53  profilanswer
 

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

n°48109
Mara's dad
Yes I can !
Posté le 20-07-2001 à 17:03:02  profilanswer
 

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é.
n°48120
bob2674
Posté le 20-07-2001 à 17:08:44  profilanswer
 

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

n°48124
Mara's dad
Yes I can !
Posté le 20-07-2001 à 17:10:10  profilanswer
 

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é.
n°48126
bob2674
Posté le 20-07-2001 à 17:11:19  profilanswer
 

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

n°48127
bob2674
Posté le 20-07-2001 à 17:12:47  profilanswer
 

au lieu de  
numéro facture  
1  
1  
1  
1

n°48129
Mara's dad
Yes I can !
Posté le 20-07-2001 à 17:19:15  profilanswer
 

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é.
n°48134
bob2674
Posté le 20-07-2001 à 17:32:06  profilanswer
 

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>";
?>

n°48138
Mara's dad
Yes I can !
Posté le 20-07-2001 à 17:40:30  profilanswer
 

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é.
n°48140
Mara's dad
Yes I can !
Posté le 20-07-2001 à 17:44:21  profilanswer
 

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é.
n°48148
bob2674
Posté le 20-07-2001 à 17:55:34  profilanswer
 

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

n°48163
Mara's dad
Yes I can !
Posté le 20-07-2001 à 18:22:05  profilanswer
 

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é.
n°48176
bob2674
Posté le 20-07-2001 à 21:52:06  profilanswer
 

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

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  php excel

 

Sujets relatifs
POUR LES ANCIENS DES MACRO EXCEL (SANS VBE)prob excel
applis excel[excel] Mon maître de stage croit que je suis developpeur excel !
[VBA EXCEL 97] Commentaires sur les cellulesJ arrive pas a executer ma macro complementaire dans excel :'(
[Pocket PC] macros Excel?[VB6] Tout bête : Comment charger une feuille Excel ?
EXCEL une commande[EXCEL] pour les dieux (tfj57 t'es la ???)
Plus de sujets relatifs à : php excel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR