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 :

creer un tableau sur word à partir de delphi.


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 11
    Points : 12
    Points
    12
    Par défaut tableaux de delphi vers word
    Bonjour tout lemonde,
    j'aimerai savoir comment proceder pour creer un tableau sur word je choisi le nombre de lignes et de colonnes dans delphi.
    quels sont les composants que je dois utiliser.
    J'ai trouvé des exemples dans ce site mais quand je les executes ils me donnent l'erreur d'acces à l'adresse 0000000
    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
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut Re: tableaux de delphi vers word
    Salut,
    Citation Envoyé par solitaire
    J'ai trouvé des exemples dans ce site mais quand je les executes ils me donnent l'erreur d'acces à l'adresse 0000000
    Sans le code utilisé sous les yeux, difficile de t'aider.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 11
    Points : 12
    Points
    12
    Par défaut creer un tableau sur word à partir de delphi.
    Voici le fragment de programme que j'ai trouvé pour creer un tableau sur word , mais ça ne marche pas.
    Si quelqu'un peut m'aider avec plaisir.
    Merci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Var Tableau:Table;
        i:Integer;
    begin
      Tableau:=DocWord.Tables.Add(WordApplication1.Selection.Range,5,3);
      For i:= 1 To Tableau.Rows.Count Do
        Tableau.Cell(i, 2).Range.Text := 'Mon texte '+IntToStr(i);
    End;
    [Modération]
    Prière d'utiliser les balises de code
    Multipost Fusionnés.
    Cordialement, Hauwke
    [/Modération
    ]

  4. #4
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut
    bonjour,
    il faudrait peut-etre une plus grande partie de fragment de code, savoir aussi quelles unités tu utilises.
    as tu regardé du coté des interfaces de programmation ole pour word ?

  5. #5
    Membre actif

    Profil pro
    Personnel
    Inscrit en
    Septembre 2003
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Personnel

    Informations forums :
    Inscription : Septembre 2003
    Messages : 142
    Points : 210
    Points
    210
    Par défaut
    Salut
    Piloter Word, ou Excel d'ailleurs, c'est facile oui et non... cela demande pas mal de code et essayer d'adapter les commandes VBA en Delphi, j'en ai fait un peu, voilà en synthèse.
    En premier lieu, ajoute un composant 'Serveur':
    WAp: TWordApplication;
    Et voici quelques possibilités d'utilisation...

    quelques variables utilisées
    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
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
     
     var
      oDocType: OleVariant;
      oTableB: OleVariant;
      oFitB: OleVariant;
      oCount: OleVariant;
      oExtend: OleVariant;
      iRows, iCols: integer;
      // avec le composant serveur WordApplication
      with WAp do begin
        // En premier lieu il faut tester si Word existe
        TRY
          Connect := true;
          Visible := true;	// word visible
          oDocType := 0;
          Documents.Add(EmptyParam, EmptyParam, oDocType, Emptyparam);	      // New Doc
          if Wap.Documents.Count = 0 then begin
            ShowMessage('Pas de Document Word vierge chargé !');
            WAp.DDETerminateAll;	// déconnexion de Word
            Exit;
          end;
          if ActiveWindow.View.SplitSpecial = wdPaneNone then
            ActiveWindow.ActivePane.View.type_ := wdNormalView
          else
    	ActiveWindow.View.type_ := wdNormalView;
        EXCEPT
          MessageDlg('Word n''est pas installé ou indisponible !', mtError, [mbOk], 0);
        END;	
        // nouveau paragraphe
        Selection.InsertParagraphAfter;
     
        // retour à la ligne
        Selection.TypeParagraph;    
     
        // crée 1 tableau
        iRows := 2;  // nb colonnes
        iCols := 5;  // nb lignes
        oTableB := wdWord9TableBehavior;
        oFitB := wdAutoFitFixed;	// dimension perso, pour Automatic = wdAutoFitContent
        // créer le tableau et se positionner dans la 1ère ligne / colonne
        ActiveDocument.Tables.Add(Selection.Range, iRows, iCols, oTableB, oFitB);
     
        // Attributs de la colonne
        Selection.SelectColumn;  // celle en cours
        Selection.Columns.PreferredWidthType := wdPreferredWidthPoints;
        Selection.Columns.PreferredWidth := CentimetersToPoints(1.5);
        Selection.Cells.VerticalAlignment := wdCellAlignVerticalCenter;
        // on peut aussi utiliser pour la colonne ref par iCols
        iCols = 1
        Selection.Tables.Item(iCols).Columns.PreferredWidth := CentimetersToPoints(1.5);
        Selection.Tables.Item(iCols).AllowAutoFit := false;
     
        // insérer une ligne
        oRows := 1;
        TRY
          Selection.InsertRowsAbove(oRows);
        EXCEPT
          oUnit := wdLine;
          oCount := 1;
          oExtend := wdMove;
          Selection.MoveUp(oUnit, oCount, oExtend);
          Selection.InsertRowsAbove(oRows);
        END;
     
        // se déplacer
        oUnit := wdCharacter;  // se déplacer d'un caractère, si vide = change de cellule
        oCount := 1;  // nb de cellule
        oExtend := wdExtend;
        Selection.MoveRight(oUnit, oCount, oExtend);  // à droite
        Selection.MoveLeft(oUnit, oCount, oExtend);	  // à gauche
        // possible aussi
        oUnit := wdColumn;	// change colonne
        oCount := 1;  // Nb de cellule
        Selection.Move(oUnit, oCount);
        // par ligne
        oUnit := wdLine;	// mode ligne
        oCount := 1;
        Selection.MoveDown(oUnit, oCount, oExtend);  // en bas
        Selection.MoveUp(oUnit, oCount, oExtend);  // en bas
     
        // remplir ligne 1
        Selection.TypeText('Cellule 1.1');	// écrire
     
        // pour modifier des cellules, on peut utiliser aussi
        Selection.Tables.Item(1)...
     
        // définir les attributs du texte
        with Wap.Selection.Font do begin
    	Name := 'Arial';
    	Size := 10;
    	Bold := 1;	// gras activé
    	Italic := 0;
    	Underline := 0;
    	UnderlineColor := wdColorAutomatic;
    	StrikeThrough := 0;
    	DoubleStrikeThrough := 0;
    	Outline := 0;
    	Emboss := 0;
    	Shadow := 0;
    	Hidden := 0;
    	SmallCaps := 0;
    	AllCaps := 0;
    	Color := clBlue;	// en bleu
    	Engrave := 0;
    	Superscript := 0;
    	Subscript := 0;
    	Spacing := 0;
    	Scaling := 100;
    	Position := 0;
    	Kerning := 0;
    	Animation := wdAnimationNone;
        end;
     
        // aller en fin de document
        oUnit := wdStory;
        oExtend := wdMove;
        Selection.EndKey(oUnit, oExtend);
        oType := wdPageBreak;
        Selection.InsertBreak(oType);
    Le mieux, c'est d'utiliser Word en mode macro:
    _ tu lances l'enregistrement d'une macro dans word
    _ tu fais des actions (créer in tableau, se déplacer, modifier...)
    _ tu arretes la macro et tu la reprends en modif.
    _ tu essayes de comprendre la macro...
    L'aide de VB / VBA est indispensable pour comprendre le format des fonctions.
    Tu utilises aussi, lors du codage, la complétion automatique du composant serveur, cela aide beaucoup.
    Et dans tous les cas, un peu de recherche sur internet, et surtout, surtout l'excellente FAQ de developpez.com !!!
    C'est assez long, mais très enrichissant dans tous les cas... comme à chaque fois que l'on galère un peu.
    Bon courage, et patience...
    @+
    Fabrice

Discussions similaires

  1. Gestion de tableau sur word a partir d'une macro sur Excel
    Par saninx dans le forum Général VBA
    Réponses: 4
    Dernier message: 27/03/2015, 09h23
  2. [XL-2003] Comment créer un tableau sous Word à partir de VBA Excel
    Par datacell33 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/05/2011, 10h01
  3. [WD-2003] Formule dans un tableau sur Word
    Par Didi1705 dans le forum VBA Word
    Réponses: 1
    Dernier message: 01/08/2009, 06h12
  4. Comment creer un tableau sur VB2005 ?
    Par fefe69 dans le forum VB.NET
    Réponses: 9
    Dernier message: 16/03/2008, 21h09

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