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 Ole de word


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2003
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 17
    Points : 13
    Points
    13
    Par défaut Pilotage Ole de word
    Bonjour,
    actuellement je pilote word avec delphi afin d'inserer des données prises dans une base de données à un document.
    Pour le moment je me sers de signet que je remplace par des tableaux que je construit "à la main" dans delphi. Par exemple pour mettre les auteurs d'un document.
    Y a t'il un moyen d'inserer un tableau directement dans le document word sans le construire cellule par cellule ? Car ceci est quand même un peu long.

    Merci d'avance pour vos reponses.

  2. #2
    Membre éprouvé Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Points : 1 122
    Points
    1 122
    Par défaut
    Tu as regardé dans la FAQ Delphi, il y a une section entière sur Word en OLE.

  3. #3
    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
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut Re: Pilotage Ole de word
    Citation Envoyé par beauchastel
    Y a t'il un moyen d'inserer un tableau directement dans le document word sans le construire cellule par cellule ?
    Je n'ai jamais fait mais essaie de détourner une méthode du type convertir un texte en tableau.
    Et si cela fonctionne, on enrichira la FAQ avec ton code

  4. #4
    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
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    tu as trouvé une solution ?

  5. #5
    Membre éprouvé Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Points : 1 122
    Points
    1 122
    Par défaut
    Donc, ce que tu cherches à éviter c'est cette méthode:
    http://delphi.developpez.com/faq/?pa...rdtableaucreer

    Si j'ai bien compris ?

    Peut être en copiant un tableau depuis un document comme objet embarqué. par contre, je ne connais pas ce genre de code.

  6. #6
    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
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Un exemple:
    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
    var
     TexteTableau:Olevariant;
     
     Unit_,
     Extend: OleVariant;
     
     MaZone: OleVariant;
     StartZone: Integer;
     EndZone: Integer;
     
     Separator: OleVariant;
     Tableau : Table;
     
    begin
      // Définit le texte à convertir
     TexteTableau:='C1_Premier;C2_Second;C3_Troisiéme'+#13#10+'L1_Premier;L2_Second;L3_Troisiéme'+#13#10+'L2_Premier;L2_Second;L2_Troisiéme'+#13#10;
     
      //Se positionne en début de document
     Unit_:=wdStory;
     Extend:=wdExtend;
     WordApplication1.Selection.HomeKey(Unit_,Extend);
     
      //Insére le texte
     WordDocument1.Range.InsertAfter(TexteTableau);
     
     // Utilise la méthode SetRange pour redéfinir la valeur de
     // la variable MaZone de sorte qu'elle fasse référence
     // aux trois premiers paragraphes du document actif.
     MaZone:=WordDocument1.Paragraphs.Item(1).Range;
      StartZone:=WordDocument1.Paragraphs.Item(1).Range.Start;
      EndZone:=WordDocument1.Paragraphs.Item(3).Range.End_;
     
     MaZone.SetRange(StartZone,EndZone);
     
     
    {  //Définit le séparateur utilisé lors de la conversion
     Separator:=';';
     MaZone.ConvertToTable(Separator,EmptyParam,EmptyParam,EmptyParam,
                           EmptyParam,EmptyParam,EmptyParam,EmptyParam,
                           EmptyParam,EmptyParam,EmptyParam,EmptyParam,
                           EmptyParam,EmptyParam,EmptyParam,EmptyParam);}
     
      //La variable maZone étant un Variant/OleVariant,
      //on peut utiliser la notation nommée pour les paramètres.
      //Cette expression est évaluée uniquement lors de l'execution (cf. DispInvoke)
      //On évite ainsi une liste de paramétres vide (EmptyParam),
      //les paramètres qui ne sont pas spécifiés prennent leur valeur par défaut.
      //Cette possibilité facilite le portage entre les versions d'Office 
      //dans la mesure où les paramètres utilisés sont communs.
     
     MaZone.ConvertToTable(Separator:=';');
     
    end;

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 287
    Points : 91
    Points
    91
    Par défaut
    Bonjour,

    As-tu trouvé une solution intéressante ?

    Je dois faire la même chose, inserer des données dans différents tableaux d'un documents word.

    Comment fais-tu pour différencier les tableaux ?

    Merci

Discussions similaires

  1. [WORD] pilotage ole Delphi
    Par missmarion dans le forum API, COM et SDKs
    Réponses: 19
    Dernier message: 28/09/2010, 11h19
  2. [OLE] Pilotage Ole de Word : Mettre Word au premier plan
    Par getz85 dans le forum C++Builder
    Réponses: 2
    Dernier message: 12/03/2010, 12h02
  3. pilotage OLE : Builder -> Word -> pdf
    Par LotfiB dans le forum C++Builder
    Réponses: 18
    Dernier message: 22/02/2009, 18h52
  4. Pilotage OLE WORD - Remplacer des termes-
    Par bru-no dans le forum C++Builder
    Réponses: 10
    Dernier message: 19/03/2007, 22h51
  5. Pilotage OLE Word avec Visual C++
    Par baka02 dans le forum MFC
    Réponses: 2
    Dernier message: 20/03/2006, 13h04

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