IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[Excel] Export excel et formatage


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 62
    Points : 29
    Points
    29
    Par défaut [Excel] Export excel et formatage
    Bonjour,

    Est-ce quelqu'un sait s'il est possible de formater les exportations mysql vers excel en passant par un traitement php?

    C'est à dire mettre des couleurs sur certaines colonnes, gérer la largeur des colonnes, etc...

    Je passe par un script d'export classique qui fonctionne très bien, mais je ne peux pas gérer la largeur et rajouter des couleurs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     fopen("$FileName.xls","w+");   ... fputs($myfile, etc..
    Merci

  2. #2
    Membre éprouvé
    Avatar de Zenol
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 812
    Points : 1 054
    Points
    1 054
    Par défaut
    Il faut utiliser une librérie qui gère les fichier Exel pour que tu puisse ajouter des lignes/colones/bordures/mises en pages/formules...
    C'est la seul solution(a moin que tu sache développer ta propre class pour gèrer les fichier Exel, qui je croi ne sont pas en plain texte)

  3. #3
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Astuce donnée par un membre du forum il y a quelque temps :
    tu écris dans un fichier .xls une table html toute simple, elle sera lue par excel !

    EDIT: trouvé => http://www.developpez.net/forums/vie...412296#2331050 8)

  4. #4
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 62
    Points : 29
    Points
    29
    Par défaut
    Trop fort... je vais essayer ça de suite.

    Merci beaucoup

  5. #5
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 62
    Points : 29
    Points
    29
    Par défaut
    Bon... finalement, je bloque toujours.

    Comment faut-il s'y prendre pour remplir le fichier excell avec le tableau ?

    J'ai essayé des trucs du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    		while($data = mysql_fetch_assoc($req))
    {
    $text .= '<table>'; 
    $text .= '<tr>'; 
    $text .= '<td>'.$data['nom'].'</td>'; 
    $text .= '<td>'.$data['prenom'].'</td>'; 
    $text .= '<td>'.$data['ville'].'</td>'; 
    $text .= '</tr>'; 
    $text .= '</table>'; 
            } 
     
            $fp = fopen("tableau.xls", 'w+'); 
            fputs($fp, $text); 
            fclose($fp);
    mais ça ne remplit rien du tout ...

  6. #6
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 62
    Points : 29
    Points
    29
    Par défaut
    Si je ne peux pas faire ça avec un fichier excell, peut être est-ce possible avec un fichier texte ?

    Est-il possible de mettre plusieurs fputs de façon à créer le tableau, les lignes, les colonnes.

    Ou alors, est-ce qu'on peut crée un autre type de fichier qui accepte la mise en page en tableau ?

    Merciii

  7. #7
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    tu peux tres bien utiliser des tableaux dans un fichier texte, mais tu n'auras pas la couleur !

    Pourquoi ? Quel est le but, ton utilisation ?

  8. #8
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 62
    Points : 29
    Points
    29
    Par défaut
    Ben, j'ai besoin à partir d'une base de créer soit un fichier .txt soit un fichier .xls ou word par exemple ou même html, qui peut être ouvert et enregistré dans un dossier sur un ordinateur qui n'a rien à voir avec le serveur.

    J'ai bien trouvé des tas de tutoriaux très compliqué avec des librairies de toutes sortes, mais je pense qu'il doit y avoir une solution plus simple.

  9. #9
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    A quoi ca te servira ?

  10. #10
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 62
    Points : 29
    Points
    29
    Par défaut
    Les personnes qui vont ouvrir et enregistrer ce fichier ne connnaissent rien au codage php, ni html, etc...

    Ils ont besoin d'une application simple, qui va ouvrir le fichier et où ils n'ont plus qu'à le réenregistrer sur leur ordi perso pour avoir le fichier à jour...

    Ce fichier doit donc pouvoir s'ouvrir avec les logiciels de bureau classique.

    Ils doivent l'enregistrer car d'autres personnes pourront alors le consulter, mais ces personnes ne peuvent pas accéder à internet.... et ne doivent pas voir les autres données de la base de données...

    simple quoi...

  11. #11
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 62
    Points : 29
    Points
    29
    Par défaut
    J'ai même essayé ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $fp = fopen("01.htm", 'w+');  
     
    while($data = mysql_fetch_assoc($req))
    {
    $nom=$data['nom'];
    $prenom=$data['prenom'];
    $ville=$data['ville'];
     
    $text = "<html><body><table><tr><td>'.$nom.'</td></tr></table></body></html>";
     
    fwrite($fp,$text,strlen($text));
     
            fclose($fp); 
       }
    mais la page crée est désepéremment vide ........

  12. #12
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    La veriter est ailleurs, regarde du coté de ta requete mysql. Qui soit est fausse, soit retourne aucun résultat

  13. #13
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 62
    Points : 29
    Points
    29
    Par défaut
    WOUIIII

    J'avais une erreur plus haut... ça y est ça passe nickel dans la fichier html, je pense que je vais faire comme ça.

    Merci beaucoup


  14. #14
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 62
    Points : 29
    Points
    29
    Par défaut
    Alors, j'ai réussit à faire l'export sur un fichier html, c'est nickel.

    Par contre, sur Excell, ça passe, mais que pour la première donnée, il ne veut pas faire la boucle et me rajouter les résultats, il ne remonte que le premier résultat...

    je met le code car il doit y avoir un moyen quelque part , avec un i++ mais je n'arrive pas à trouver le bon endroit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    $date = date("Y-m-d-H-i-s"); 
    $Fichier = $date;
    fopen("$Fichier.xls","w+");  
    $file = ("$Fichier.xls"); 
    //on ouvre le fichier 
    if(!$myfile = fopen($file, "w+"))     
    {
         print("erreur: ");
         print("'$Fichier' n'existe pas!\n");
         exit;
    }
     
    //====================================
    // Traitement 
    //====================================
     
     
    	// on selectionne la base 
    	mysql_select_db($sql_bdd,$db_link); 
    	// on selectionne les enregistrements
    	$sql = "SELECT nom,prenom,ville,adresse,cp,telephone,portable,email,genre FROM contacts where ville like \"$ville2\" order by 
    	nom"; 
    	$req = mysql_query($sql); 
    	    if(mysql_errno() != 0)
        {
           exit();
        }
    	else
    	{
    	// on fait une boucle qui va faire un tour pour chaque enregistrement 
     
    $i=0;
    $Nmax = 1000; // nombre par page
    $Ncur = 0; // n° de la fiche courante
    $Ndeb = 0; // 1ère fiche transmise par l'URL
    if(isset($num))
       $Ndeb=intval($num);
     
       // tant qu'il y a des fiches
     
    while(($data = mysql_fetch_array($req)) && ($Ncur<$Nmax+$Ndeb)) {
       if($Ncur>=$Ndeb) { 
    		$nom=$data['nom'];
    		$prenom=$data['prenom'];
    		$ville=$data['ville'];
    		$adresse=$data['adresse'];
    		$cp=$data['cp'];		
    		$telephone=$data['telephone'];		
    		$email=$data['email'];	
     
     
    $text = "<html><body>
    <table border=\"1\" width=\"800\">
    <tr>
    <td width=\"50\" valign=\"top\"><font size=\"2\" face=\"Arial, Helvetica, sans-serif\"><b>$ville</b></font></td>
    <td width=\"200\" valign=\"top\"><font size=\"2\" face=\"Arial, Helvetica, sans-serif\">$nom</font></td>
    <td width=\"100\" valign=\"top\"><font size=\"2\" face=\"Arial, Helvetica, sans-serif\">$prenom</font></td>
    <td valign=\"top\" width=\"450\"><font size=\"2\" face=\"Arial, Helvetica, sans-serif\">$adresse</font></td>
    </tr>
    <tr>
    <td width=\"50\" valign=\"top\"></td>
    <td width=\"200\" valign=\"top\"><font size=\"2\" face=\"Arial, Helvetica, sans-serif\">$cp</font></td>
    <td width=\"100\" valign=\"top\"><font size=\"2\" face=\"Arial, Helvetica, sans-serif\">$telephone</font></td>
    <td valign=\"top\" width=\"450\"><font size=\"2\" face=\"Arial, Helvetica, sans-serif\">$email</font></td>
    </tr>
    </table></body></html>";
     
    }
       // une de plus
       $Ncur++;
     
    fwrite($myfile,$text,strlen($text));
     
    }
    }
    //fermeture fichier
    fclose($myfile);   //on ferme le fichier
    chmod ("$Fichier.xls", 0777);
    Si quelqu'un sait par où je devrai chercher ce serait super top.

  15. #15
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    ton fichier html, si tu l'ouvre sous IE ou Fx, il y a toutes tes lignes que tu veux ?

  16. #16
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 62
    Points : 29
    Points
    29
    Par défaut
    Le fichier html je l'ouvre sous ie,

    et avec le même code en remplacant les
    .xls
    par
    .htm
    ,

    il me remonte bien tous les résultats ...

    Est-ce qu'il n'y a pas un moyen de lui dire explicitement de recommencer le

    fwrite($myfile,$text,strlen($text));
    un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fwrite($myfile,$text(i++),strlen($text(i++)));
    ???

  17. #17
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 62
    Points : 29
    Points
    29
    Par défaut
    J'ai rajouté ceci pour tenter à la fin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for ($i=0; $i<1000; $i++) {
    // j'écris
    fwrite($myfile,$text,strlen($text));
    }
    mais non, sur le fichier excel il continue à n'écrire que le premier résultat...

    je n'arrive pas à trouver la syntaxe pour lui faire comprendre un truc du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for ($i=0; $i<1000; $i++) {
     
    fwrite($myfile,$text($i),strlen($text($i)));
     
    }
    Personne ne sait alors ?

  18. #18
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    colle nous ton flux html (pas 1000 lignes non plus hein)

  19. #19
    Nouveau membre du Club
    Inscrit en
    Novembre 2003
    Messages
    62
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 62
    Points : 29
    Points
    29
    Par défaut
    ???

    Je lui demande de m'inscrire ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $text = "<html><body> 
    <table border=\"1\" width=\"800\"> 
    <tr> 
    <td width=\"50\" valign=\"top\"><font size=\"2\" face=\"Arial, Helvetica, sans-serif\"><b>$ville</b></font></td> 
    <td width=\"200\" valign=\"top\"><font size=\"2\" face=\"Arial, Helvetica, sans-serif\">$nom</font></td> 
    <td width=\"100\" valign=\"top\"><font size=\"2\" face=\"Arial, Helvetica, sans-serif\">$prenom</font></td> 
    <td valign=\"top\" width=\"450\"><font size=\"2\" face=\"Arial, Helvetica, sans-serif\">$adresse</font></td> 
    </tr> 
    <tr> 
    <td width=\"50\" valign=\"top\"></td> 
    <td width=\"200\" valign=\"top\"><font size=\"2\" face=\"Arial, Helvetica, sans-serif\">$cp</font></td> 
    <td width=\"100\" valign=\"top\"><font size=\"2\" face=\"Arial, Helvetica, sans-serif\">$telephone</font></td> 
    <td valign=\"top\" width=\"450\"><font size=\"2\" face=\"Arial, Helvetica, sans-serif\">$email</font></td> 
    </tr> 
    </table></body></html>";
    voici une copie écran quand je lui demande de me créer le fichier html:


    et voici une copie pour le fichier xls:



    ???

  20. #20
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    tu as plusieurs <html>, ce qui n'est pas possible selon la sepcification du w3c

    De plus excel dois comprendre qu'une seule table, donc tu dois ouvrir et fermer ta table en dehors de ta boucle.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Export excel et formatage
    Par soeursourire dans le forum Excel
    Réponses: 4
    Dernier message: 27/01/2011, 11h56
  2. [Excel/VBA]Formatage de date
    Par rodrigue62 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/07/2007, 13h35
  3. Export Excel et formatage en date (année mois)
    Par joshua12 dans le forum Access
    Réponses: 1
    Dernier message: 20/09/2006, 00h22
  4. exportation sur excel problème de formatage
    Par Alexandre Sahli dans le forum Access
    Réponses: 12
    Dernier message: 05/09/2006, 17h56
  5. [VBA] [EXCEL 97] Formatage automatique des cellules
    Par plante20100 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/09/2005, 09h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo