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

Langage Delphi Discussion :

Pilotage de Word


Sujet :

Langage Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 287
    Par défaut Pilotage de Word
    Bonjour,

    Je travaille sur une appli qui doit doit insérer des données dans un fichier WORD pré-rempli. J'ais trouvé la FAQ et tout commence à fonctionner.

    Mon problème c'est pour sélectionner les tableaux sur lesquels je doit ajouter du texte.
    Pour ajouter du texte à certains endroits définis j'utilise les signets.
    Par contre je n'ais pas trouvé de solution pour identifier clairement un tableau (word utilise une définition incrémentale de ces tableaux).

    Merci

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut Re: Pilotage de Word
    Salut,
    Citation Envoyé par richard038
    Par contre je n'ais pas trouvé de solution pour identifier clairement un tableau (word utilise une définition incrémentale de ces tableaux).
    Peut-être en utilisant la propriété Range ?

  3. #3
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 941
    Par défaut
    Ce n'est a priori pas faisable.

    Confronter à ce problème, j'ai résolu en adressant le tableau par son n° d'ordre dans le document: (là, c'est le 11ème, je le remplis avec le contenu d'un grid)
    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
        vTableaux:=vWDocument.Tables;
        vTableau:=vTableaux.item(11);
    // Ajout du nb de ligne nécessaire 
    //   on ajoute 1 ligne de moins car le tableau contient déjà 1 ligne vide
        For i:=1 to KStringGrid1.RowCount-1 do begin
          //Récupére la derniére ligne
           BeforeRow:=vTableau.Rows.Item(vTableau.Rows.Count);
          // Ajoute avant la derniére
           vTableau.Rows.Add(BeforeRow);
        end;
    // Remplissage 
        For i:=0 to KStringGrid1.RowCount-1 do begin
          vTableau.Cell(i+2, 1).Range.Text := KStringGrid1.Cells[0,i]+
                                             ' ('+KStringGrid1.Cells[8,i]+') par '+
                                              KStringGrid1.Cells[9,i];
          For j:=1 to 6 do  // 6 colonnes identiques
             vTableau.Cell(i+2,j+1).Range.Text := KStringGrid1.Cells[1+j,i];
          vTableau.Cell(i+2,8).Range.Text := KStringGrid1.Cells[10,i];      // justif
          vTableau.Cell(i+2,9).Range.Text := KStringGrid1.Cells[11,i];      // volumétrie
        end;
    Mon tableau contient 1 ligne d'entête.
    Il contient aussi 1 ligne vide afin de pouvoir faire in InsertBefore (pas d'autre possibilité )

    Regarde dans la pour le type des variables utilisées

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 287
    Par défaut
    Le numéro d'ordre n'est pas suffisament fiable (du moins dans mon cas, où les usagers peuvent modifier le document, et qu'il peut être nécessaire de faire des mise à jour du fichier word)

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2004
    Messages : 27
    Par défaut
    Essaye d'utiliser les données externes, les tableaux référencant ces données externes (bases de données, fichiers délimités...).

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 287
    Par défaut
    Qu'est-ce que tu entends par données externes, contenu du tableau ?

Discussions similaires

  1. Pilotage de Word avec Delphi
    Par Teddy dans le forum Delphi
    Réponses: 7
    Dernier message: 10/07/2006, 09h52
  2. [COM] Pilotage de Word à partir d'un objet COM
    Par Sangdrax1604 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 05/06/2006, 16h04
  3. Pilotage OLE Word avec Visual C++
    Par baka02 dans le forum MFC
    Réponses: 2
    Dernier message: 20/03/2006, 13h04
  4. Pilotage de Word - Publipostage via BDD Firebird
    Par nonoxp dans le forum Bases de données
    Réponses: 1
    Dernier message: 06/04/2005, 09h30
  5. Pilotage de Word 2003
    Par dragonspyro93 dans le forum WinDev
    Réponses: 1
    Dernier message: 22/11/2004, 10h49

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