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

PHP & Base de données Discussion :

insérer un tableau sous word


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    .
    Inscrit en
    Juin 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Juin 2014
    Messages : 25
    Par défaut insérer un tableau sous word
    Bonjour,

    Au clic sur un bouton, je télécharge un fichier word (.doc) rempli avec des variables issues de ma bdd. Jusque là, tout va bien.

    Mais lorsque je veux insérer un tableau dans mon document word, c'est là où tout se gâte.

    Pour être plus précis, j'ai un fichier .rtf principal (présent sur le serveur) qui est complété par des fichiers .rtf secondaires (eux aussi présents sur le serveur). les variables de ces fichiers secondaires sont remplis avec les données de la bdd via php.

    Voici mon code pour remplir le fichier secondaires "successibles.rtf":
    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
     
    $resultatsucc = $bdd->prepare('SELECT * FROM successible WHERE pjt_id = :numpjt ');
        $resultatsucc->bindValue(':numpjt',$numpjt, PDO::PARAM_INT);
        $executeIsOk2 = $resultatsucc->execute();
     
        $filesucc = $succ;
        $fs = fopen($filesucc,'r');
        $successibles = fread($fs, filesize($filesucc));
        fclose($fs);
     
        $tableauSuccessibles .=		"<table>
                        <tr>
                          <td>Civilité</td>
                          <td>Prénom</td>
                          <td>Nom</td>
                          <td>Age</td>
                          <td>Lien de parenté</td>
                          <td>Parent de</td>
                        </tr>";
        while  ($success=$resultatsucc->fetch()) {
          if ($success['lien_parente_succ'] <> 'Petit enfant') {
            $enfantSucc = $success['parent_succ'];
            } else {
            $enfantSucc = $success['enfant_de_succ'];
          };
          $tableauSuccessibles .= 
            '<tr>';
              $tableauSuccessibles .= '<td>'.$success['genre_succ'].'</td>';
              $tableauSuccessibles .= '<td>'.$success['prenom_succ'].'"</td>';
              $tableauSuccessibles .= '<td>'.$success['nom_succ'].'</td>';
              $tableauSuccessibles .= '<td>'.$success['age_succ'].'</td>';
              $tableauSuccessibles .= '<td>'.$success['lien_parente_succ'].'</td>';
              $tableauSuccessibles .= '<td>'.$enfantSucc.'</td>';
            $tableauSuccessibles .= '</tr>';
        }
        $tableauSuccessibles .= "</table>";
        $successibles = str_replace("[tableauSuccessibles]",	$tableauSuccessibles,					$successibles);
    Ensuite j'insère mon tableau dans mon fichier principal "ric.rtf" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $filename = $ric;
        $fp = fopen($filename,'r');
        $content = fread($fp, filesize($filename));
        fclose($fp);
    $content = str_replace("[successibles]",				$successibles,							$content);
    Lorsque je télécharge ce fichier en .doc, j'obtiens bien les 2 lignes correspondant mais les balises du tableau sont affichées et la mise en forme, c'est du n'importe.
    Nom : Capture d’écran 2022-04-26 à 09.28.39.png
Affichages : 107
Taille : 194,0 Ko
    Quelqu'un peut il m'aider SVP

    Par avance merci.

    François

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 577
    Par défaut
    sur une autre discussion vous parliez d'impression. si ce document a pour but d'être imprimé, est ce que vous avez déjà réfléchi à générer un fichier PDF ?

  3. #3
    Membre averti
    Homme Profil pro
    .
    Inscrit en
    Juin 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Juin 2014
    Messages : 25
    Par défaut
    bonjour Mathieu et merci d'avoir pris le temps de me lire.

    Je ne peux l'imprimer en PDF car par la suite je dois pouvoir apporter des modifications, c'est la raison pour laquelle je le télécharge en .doc.

    Merci quand même

  4. #4
    Membre averti
    Homme Profil pro
    .
    Inscrit en
    Juin 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Juin 2014
    Messages : 25
    Par défaut solution trouvée
    Solution trouvée !!!
    En fait j'utilisais du html pour faire du rtf. Donc ça ne pouvait pas marcher.
    En utilisant la syntaxe rtf (ce qui n'est pas le plus simple) pour faire mon tableau, maintenant c'est bon.
    Pour ceux que ça intéresse :
    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
     
        $tableauSuccessibles .=	'{\rtf1\ansi\deff0{\fonttbl {\f0 Calibri;}}\trowd\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrb\brdrs\clbrdrr\brdrs\cellx1750\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrb\brdrs\clbrdrr\brdrs\cellx3500\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrb\brdrs\clbrdrr\brdrs\cellx5250\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrb\brdrs\clbrdrr\brdrs\cellx7000\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrb\brdrs\clbrdrr\brdrs\cellx8750\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrb\brdrs\clbrdrr\brdrs\cellx10500
    {\f0\fs16 {\b Civilité}}\intbl\cell
    {\f0\fs16 {\b Prénom}}\intbl\cell
    {\f0\fs16 {\b Nom}}\intbl\cell
    \qc{\f0\fs16 {\b Age}}\intbl\cell
    \qc{\f0\fs16 {\b Lien de parenté}}\intbl\cell
    \qc{\f0\fs16 {\b Parent de}}\intbl\cell\row}';
    /* foreach ($resultatsucc as $success) { */
        while  ($success=$resultatsucc->fetch()) {
          if ($success['lien_parente_succ'] <> 'Petit enfant') {
          $enfantSucc = $success['parent_succ'];
          } else {
          $enfantSucc = $success['enfant_de_succ'];
                  };
        $tableauSuccessibles .=	'{\rtf1\ansi\deff0{\fonttbl {\f0 Calibri;}}\trowd\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrb\brdrs\clbrdrr\brdrs\cellx1750\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrb\brdrs\clbrdrr\brdrs\cellx3500\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrb\brdrs\clbrdrr\brdrs\cellx5250\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrb\brdrs\clbrdrr\brdrs\cellx7000\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrb\brdrs\clbrdrr\brdrs\cellx8750\clbrdrt\brdrs\clbrdrl\brdrs\clbrdrb\brdrs\clbrdrr\brdrs\cellx10500
    {\f0\fs16 '.$success['genre_succ'].'}\intbl\cell
    {\f0\fs16 '.$success['prenom_succ'].'}\intbl\cell
    {\f0\fs16 '.$success['nom_succ'].'}\intbl\cell
    \qc{\f0\fs16 '.$success['age_succ'].'}\intbl\cell
    \qc{\f0\fs16 '.$success['lien_parente_succ'].'}\intbl\cell
    \qc{\f0\fs16 '.$enfantSucc.'}\intbl\cell\row}';
          }
          $successibles = str_replace("[tableauSuccessibles]",	$tableauSuccessibles,					$successibles);
    Résultat :
    Nom : Capture d’écran 2022-04-27 à 10.49.21.png
Affichages : 74
Taille : 47,2 Ko
    Ca donne un tableau digne de ce nom mais je cherche encore pour changer la couleur du texte et de fond d'une cellule ; quelqu'un peut-il me mettre sur la voie SVP ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Insertion multiple d'images dans un tableau sous Word
    Par madchemiker dans le forum VBA Word
    Réponses: 1
    Dernier message: 08/02/2008, 15h16
  2. Mise en page Tableau sous Word
    Par PoluxProg dans le forum VBA Word
    Réponses: 7
    Dernier message: 04/02/2008, 22h09
  3. insérer une image sous word depuis vba-A
    Par Ofeneim dans le forum VBA Access
    Réponses: 2
    Dernier message: 28/05/2007, 10h32
  4. Manipulation d'un tableau sous Word avec vba
    Par Françoise Sagan dans le forum VBA Word
    Réponses: 1
    Dernier message: 02/12/2006, 13h54
  5. Insérer un tableau sous Word depuis Delphi
    Par muquet dans le forum Langage
    Réponses: 1
    Dernier message: 23/12/2005, 11h59

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