Partager
Affiche les résultats de 1 à 4 sur 4

Sujet : Développement web : Générer un état en word avec php

  1. #1
    Inscrit
    décembre 2012
    Messages
    658
    Remerciements
    401
    Remercié(e) 223 fois dans 114 messages
    Pouvoir de réputation
    7

    Développement web : Générer un état en word avec php

    Bonsoir et merci d'avance à tous ceux qui liront mon message

    Voilà j'ai une table Mysql et j'aimerais bien l'afficher sous format Word dans un tableau à taille variable par rapport au nombre d'enregistrements de ma table.

    J'ai bon essayé avec le publipostage mais la vérité j'étais un peu perdue!! alors j'ai commencé avec la création d'un fichier "modèle" en rtf où j'ai ajouté les intitulés des champs de ma table (sur MS word sur le menu Insertion->quickpart->champ(je choisie Title))

    et quand je lance ma page php un fichier word (.rtf) sera automatiquement créé.

    Jusqu'à mnt un seul enregistrement (une ligne de ma table) qui est affiché alors je n'arrive tjrs pas à afficher le contenu de toute ma table.

    J'espère mon explication est un peu claire!! merci de m'aider
    Dernière édition par sabrina206; 20/08/2013 à 09h01

  2. # ADS
    Inscrit
    Toujours
    Messages
    Plusieurs






     
  3. #2
    Inscrit
    décembre 2012
    Messages
    658
    Remerciements
    401
    Remercié(e) 223 fois dans 114 messages
    Pouvoir de réputation
    7

    Re : Développement web : Générer un état en word avec php

    Bonjour,

    Les étapes de mon programme:

    1-Création d'un fichier Modèle

    Sur MS Word je crée un nouveau document, j'insère un tableau avec 4 colonnes et deux lignes) et je déclare les champs que je veux afficher (Insertion->Quickpart->champ (title)) sur la deuxième ligne de mon tableau ([nom],....).

    Nom Prenom Date de naissance Adresse
    [nom] [prenom] [DN] [adr]

    Et j'enregistre le document avec le nom exemple.rtf

    2-Programme PHP

    Code PHP:
    <?php
    $filename
    ="exemple.rtf";
    if(
    file_exists($filename)){
    //Ouverture du modele
    $fp fopen ($filename'r');
    $content fread($fpfilesize($filename));
    fclose ($fp);    

    //Connecter à la base de données
    mysql_connect('localhost','root','');
    mysql_select_db('Btest');

    $requet ="select * matable"
    $result mysql_query($requet);
    while (
    $row mysql_fetch_row($result))
    {
      
    //Affectation des valeurs des champs
      
    $content=str_replace("[nom]",$row[0],$content);
      
    $content=str_replace("[prenom]",$row[1],$content);
      
    $content=str_replace("[DN]",$row[2],$content);
      
    $content=str_replace("[adr]",$row[3], $content);  
    }
    //Affichage du document word
    header("application/vnd.openxmlformats-officedocument.wordprocessingml.document");//header("Content-Type: application/msword" );
    header('Content-Disposition: attachment; filename=\"File_Test.docx\"');//filename=File_Test.doc
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');

    echo 
    $content;
    }

    ?>
    Le résultat ressemble à ça :

    File_Test.docx

    Nom Prenom Date de naissance Adresse
    TARA Aliane 12/12/2012 Zanzibar

    Je ne sais pas pourquoi je ne peux pas afficher le reste de ma table !!
    Dernière édition par sabrina206; 20/08/2013 à 10h00

  4. #3
    Inscrit
    février 2011
    Lieu
    alger
    Messages
    1 770
    Remerciements
    777
    Remercié(e) 810 fois dans 485 messages
    Pouvoir de réputation
    16

    Re : Développement web : Générer un état en word avec php

    c'est logique a la première itération de la base donnée il trouve [nom] [prenom] [DN] [adr] mais a la deuxième il trouvera rien

    un fichier docx est en réalité une archive contenant principalement des fichiers xml la preuve si vous créez un fichier word .docx et vous le remplacez en .zip he ben vous pouvez l'ouvrir avec un winzip ou winrar faite le test

    je te conseil l’excellent article Générer du Word en PHP

    pour pouvoir générer un fichier docx correctement il faut avoir quelque notion en xml

    Code HTML:
    <w:p w:rsidR="00FB1376" w:rsidRPr="00FB1376" w:rsidRDefault="00FB1376" w:rsidP="00FB1376"><w:r w:rsidRPr="00FB1376"><w:t>TARA</w:t></w:r></w:p>
    ça s'articule de cette manière, encore, il faudrait utiliser des expressions régulière pour le mettre au bon endroit

    j’espère que quelqu'un a trouvé une solution plus facile ou tu la déjà trouvé


    Visitez mon blog habibal.tk en ligne



    et aussi habibal-tv.tk en ligne


    chaine youtube : https://www.youtube.com/user/omhabibal

  5. #4
    Inscrit
    septembre 2010
    Messages
    328
    Remerciements
    37
    Remercié(e) 196 fois dans 111 messages
    Pouvoir de réputation
    9

    Re : Développement web : Générer un état en word avec php

    Il y a une autre solution, mais celle ci n'est pas pratique si la table contient beaucoup d'enregistrement.
    La solution étant de créer plusieurs fichiers words, nommés par exemple doc1 doc2 doc3, et chaque document contient un tableau dont le nombre de ligne est fixe. (1, 2, 3, 4 lignes etc...), tu ajoutes du code qui te permet de calculer le nombre d'enregistrement (count) de ta table et tu choisi le fichier le plus adapté.
    C'est une solution pas pratique, mais ça marchera.
    Désolé pour le retard, j'avais fais une recherche le jour ou t'as posté le message, j'ai trouvé le même lien que Habibal, mais vu que j'étais préssé ce jour je suis parti sans poster le lien et depuis j'avais complétement oublié le topic, j'espère que ça va t'aider.

  6. Les membres suivants ont remercié Hakim92 pour cet excellent message :


Sujets similaires

  1. Réponses: 0
    Dernier message: 26/07/2013, 15h12
  2. Un memristor pour générer des nombres aléatoires
    Par TeamWorK dans le forum Actualité informatique et high tech
    Réponses: 0
    Dernier message: 30/07/2012, 02h25
  3. IUT Telecom Word 2011:L’Algérie s’engage à combattre la cybercriminalité
    Par Essedik dans le forum Actualité informatique et high tech
    Réponses: 0
    Dernier message: 24/10/2011, 19h23
  4. Réponses: 1
    Dernier message: 17/10/2011, 12h43
  5. Introducing Word Lens
    Par diegol dans le forum Vidéos
    Réponses: 2
    Dernier message: 18/12/2010, 17h04

Règles des messages

  • Vous ne pouvez pas créer de sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas importer de fichiers joints
  • Vous ne pouvez pas modifier vos messages
  •  
  • Les BB codes sont Activés
  • Les Smileys sont Activés
  • Le BB code [IMG] est Activé
  • Le code [VIDEO] est Activé
  • Le code HTML est Désactivé



Liens annexes