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

Delphi Discussion :

Editer un document Word


Sujet :

Delphi

  1. #1
    Membre habitué
    Homme Profil pro
    Owner
    Inscrit en
    Décembre 2004
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Owner
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2004
    Messages : 466
    Points : 137
    Points
    137
    Par défaut Editer un document Word
    Bonjour,
    Je souhaite éditer un document word automatiquement.
    Cela marche très bien, mais après modification, j'obtient un nouveau document Word 'document1'.
    J'aimerais sauver automatiquement ce document en lui attribuant un nom.

    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
    procedure TForm1.Button11Click(Sender: TObject);
    var
      Fword,FDocument,FFindObject:OleVariant;
      Filename:String;
     
    begin
       Filename := 'C:\temp\A_Editer.doc';
       Fword := CreateOleObject('Word.Application');
       FDocument := Fword.Documents.Add(Filename);
       FFindObject := FDocument.ActiveWindow.Selection.Find;
       Fword.visible := true;
       FFindObject.ClearFormatting;
       FFindObject.Replacement.ClearFormatting;
       FFindObject.Text := 'xxx2'; //balise qui sera remplacée par le texte du 'test.rtf'
       FFindObject.Forward := True;
       FFindObject.Replacement.Text := '';
       FFindObject.Wrap := 1;
       FFindObject.MatchCase := False;
       FFindObject.MatchWholeWord := False;
       FFindObject.MatchWildcards := False;
       FFindObject.MatchSoundsLike := False;
       FFindObject.MatchAllWordForms := False;
     
       if FFindObject.Execute() then Fword.selection.InsertFile('C:\temp\test.rtf');
       end;
    Merci pour votre aide
    PhilLu

  2. #2
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2008
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 666
    Points : 643
    Points
    643
    Par défaut
    Bonsoir,

    C'est pas claire ce que tu veux faire exactement.

    Ton code copie une partie(quelques lignes) de ton fichier word et le colle juste au dessous.

    Que veux-tu faire?
    Chercher puis remplacer un texte et puis sauvegarder ce fichier automatiquement dans ton fichier word?

  3. #3
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,
    Citation Envoyé par PhilLU Voir le message
    J'aimerais sauver automatiquement ce document en lui attribuant un nom.
    Aujourd'hui aussi, je vais commencer par dire :

    Il y a une et si on suit les règles édictées pour les forums à savoir : http://www.developpez.net/forums/d91...vant-probleme/, on trouve : http://delphi.developpez.com/faq/?pa...ocument-ouvert.

    Cela prend 5 minutes montre en main, ma réponse incluse !
    Philippe.

  4. #4
    Membre habitué
    Homme Profil pro
    Owner
    Inscrit en
    Décembre 2004
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Owner
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2004
    Messages : 466
    Points : 137
    Points
    137
    Par défaut
    Citation Envoyé par Ph. B. Voir le message
    Bonjour,
    Aujourd'hui aussi, je vais commencer par dire :

    Il y a une et si on suit les règles édictées pour les forums à savoir : http://www.developpez.net/forums/d91...vant-probleme/, on trouve : http://delphi.developpez.com/faq/?pa...ocument-ouvert.

    Cela prend 5 minutes montre en main, ma réponse incluse !
    Merci Philippe
    Quel est ta string de recherche?
    Quand on sait où est la réponse, le requête est facile.
    Tu penses bien que "comment sauver un document ouvert word" n'est pas une option que j'espérais pouvoir me renvoyer une quelconque solution...
    Merci pour ta réponse

  5. #5
    Membre confirmé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2008
    Messages
    666
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 666
    Points : 643
    Points
    643
    Par défaut
    Le code suivant recherche un String dans un document Word et le remplace par un autre String:

    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
    Type
      TWordReplaceFlags = set of (wrfReplaceAll, wrfMatchCase, wrfMatchWildcards);
    
      Function Word_StringReplace(ADocument: TFileName; SearchString, ReplaceString: string; Flags: TWordReplaceFlags): Boolean;
    const
      wdFindContinue = 1;
      wdReplaceOne = 1;
      wdReplaceAll = 2;
      wdDoNotSaveChanges = 0;
    var
      WordApp: OLEVariant;
    begin
      Result := False;
    
    
      if not FileExists(ADocument) then
      begin
        ShowMessage('Le fichier spécifié est introuvable.');
        Exit;
      end;
    
      try
        WordApp := CreateOLEObject('Word.Application');
      except
        on E: Exception do
        begin
          E.Message := 'Word n''est pas disponible.';
          raise;
        end;
      end;
    
      try
    
        WordApp.Visible := true;
    
        WordApp.Documents.Open(ADocument);
    
        WordApp.Selection.Find.ClearFormatting;
        WordApp.Selection.Find.Text := SearchString;
        WordApp.Selection.Find.Replacement.Text := ReplaceString;
        WordApp.Selection.Find.Forward := True;
        WordApp.Selection.Find.Wrap := wdFindContinue;
        WordApp.Selection.Find.Format := False;
        WordApp.Selection.Find.MatchCase := wrfMatchCase in Flags;
        WordApp.Selection.Find.MatchWholeWord := False;
        WordApp.Selection.Find.MatchWildcards := wrfMatchWildcards in Flags;
        WordApp.Selection.Find.MatchSoundsLike := False;
        WordApp.Selection.Find.MatchAllWordForms := False;
    
        if wrfReplaceAll in Flags then
          WordApp.Selection.Find.Execute(Replace := wdReplaceAll)
        else
          WordApp.Selection.Find.Execute(Replace := wdReplaceOne);
    
        WordApp.ActiveDocument.SaveAs(ADocument);  // Sauvegarde du document
    
        Result := True;
    
        WordApp.ActiveDocument.Close(wdDoNotSaveChanges);
      finally
    
        WordApp.Quit;  / Quitter Word
        WordApp := Unassigned;
      end;
    end;
    
    //----------------------------------------------------------------------------
    Utilisation : 
    
    procedure TForm1.LMDButton1Click(Sender: TObject);
    begin
    Word_StringReplace('C:\Test.doc' , 'xxx2' , 'Nouveau mot' , [wrfReplaceAll]); // Test.doc ou Test.Rtf
    end;

  6. #6
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,
    Citation Envoyé par PhilLU Voir le message
    Merci Philippe
    Quel est ta string de recherche?
    Quand on sait où est la réponse, le requête est facile.
    Tu penses bien que "comment sauver un document ouvert word" n'est pas une option que j'espérais pouvoir me renvoyer une quelconque solution...
    Merci pour ta réponse
    Et bien ma chaine de recherche est simple : il suffit de suivre ce qui est indiqué dans le 1° lien que j'ai donné :
    Chercher dans:
    1. La documentation de votre version de Delphi
    2. Les tutoriels : http://delphi.developpez.com/cours/
    3. La F.A.Q : http://delphi.developpez.com/faq/
    4. Les autres articles de http://delphi.developpez.com
    5. Ce forum par mots clé dans le module de recherche
    La seule "entorse" que j'ai faite a été de commencer par la
    Je ne savais pas si la réponse y serait, mais j'ai supposé que oui vu le nombre de points traités...
    Donc je parcours le sommaire, il y a un chapitre 19. Microsoft Office (148) doté d'un sous chapitre 19.2. Microsoft Word (56) lui même doté de 19.2.2. Gestion des documents (14).
    La je vois la question suivante : Comment sauver le document ouvert ?

    Si cela avait été un échec, j'aurais regardé les tutoriels et lancé en parallèle une recherche avec les mots clés Delphi Word save (j'évite les questions en langage naturel !)
    Tiens surprise, le 2° lien du résultat de recherche me renvoie sur le site de développez Pilotage OLE de Word à partir de Delphi. Le chapitre 5.2 répond à la question !
    5 minutes à nouveau pour le faire...
    Philippe.

Discussions similaires

  1. Editer un document word via web asp.net ou Silverlight
    Par Husqvarna dans le forum Développement Web avec .NET
    Réponses: 0
    Dernier message: 04/05/2015, 10h04
  2. Editer un document Word
    Par Adorien dans le forum Documents
    Réponses: 2
    Dernier message: 26/03/2013, 09h04
  3. Editions automatisée de documents WORD
    Par Marie_e dans le forum Word
    Réponses: 5
    Dernier message: 19/03/2010, 19h55
  4. Insertion document word
    Par julien41 dans le forum Bases de données
    Réponses: 8
    Dernier message: 27/02/2004, 14h04
  5. [VB6] Erreur lors de l'ouverture d'un document Word
    Par Marco le Pouillot dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 03/01/2003, 09h30

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