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

Word Discussion :

Problème lecture contenu document Word [Toutes versions]


Sujet :

Word

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2008
    Messages : 111
    Points : 50
    Points
    50
    Par défaut Problème lecture contenu document Word
    Bonjour à tous,

    J'essaye de récupérer tout le contenu texte d'un document Word toute version (.doc/.docx) via un programme .NET.
    J'arrive à ouvrir mon document et à récupérer le texte d'un document basique. Par contre je n'arrive à récupérer le texte contenu dans une forme contenant du texte. On peut dans word faire insertion -> formes et mettre du texte dans la forme. J'aimerai récupérer en plus du texte contenu dans le document, le texte contenu dans ces éléments.


    Merci d'avance.

  2. #2
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Salut CTotophe85,

    Il faut que tu regardes dans le modèle d'un document Word et ses collections. Dans ton cas, le document est accessible par ActiveDocument et la liste des zones de texte par la collection Shapes (Attention, pas InlineShapes). Il suffit alors de trouver la syntaxe de ton langage de programmation. Par exemple en VB, tu pourrais utiliser quelque chose comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    For Each aShp In ActiveDocument.Shapes
        MsgBox "Texte de la zone = " & aShp.TextFrame.TextRange.Text
    Next
    @+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2008
    Messages : 111
    Points : 50
    Points
    50
    Par défaut
    Salut Sepia,

    Merci pour les infos. J'utilise pour ce projet du VB.Net.
    C'est super j'arrive à récupérer avec cette méthode tous les éléments

    A la base je récupérais les éléments dans le presse papier. Mais je me suis rendu compte que cela ne fonctionnait pas dans tous les cas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ActiveWindow.Selection.WholeStory()
    ActiveWindow.Selection.Copy()
    Avant de poster j'étais parti sur le fait de balayer les différents paragraphs du document sauf que pour balayer l'intérieur du paragraph c'est un peu compliqué car l'élément n'est pas fortement typé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ActiveWindow.Selection.Paragraphs.First.Range
    Par contre pour la solution il est important de noté que ActiveWindow.Selection.WholeStory() est obligatoire après avoir fait le Open:
    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
     
    Dim lDoc As New Microsoft.Office.Interop.Word.Document
    lDoc = lWord.Documents.Open(lFileName, lConfirmConversion, lReadOnly, lAddToRecentFile, lPasswordDoc, lpasswordTemplate, lRevert, lWritePasswordDoc, lWritePasswordTemplate, lFormat, lEncoding, lVisible, lOpenAndRepair, lDocumentDirection, lNoEncodingDialog, lXMLTransform)
     
    'Sélection de tous les éléments de la page
    lDoc.ActiveWindow.Selection.WholeStory()
     
    Dim lText As New System.Text.StringBuilder
     
    For Each lElement As Shape In lDoc.Application.ActiveDocument.Shapes
         Try
             lText.AppendLine(lElement.TextFrame.TextRange.Text)
          Catch
          End Try
    Next

  4. #4
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Cela ne répond pas à la problématique pour les fichiers .doc mais bon...

    Pour Word 2007 et suivants:

    http://code.msdn.microsoft.com/VBOpe...nText-9f01eef4

    À la condition de télécharger le SDK Open XML:

    http://www.microsoft.com/en-us/downl....aspx?id=30425

    et d'ajouter la référence à DocumentFormatOpenXML.dll dans le projet VB.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  5. #5
    Expert éminent
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Points : 6 856
    Points
    6 856
    Par défaut
    Salut CTotophe85

    Merci pour les infos. J'utilise pour ce projet du VB.Net.
    C'est super j'arrive à récupérer avec cette méthode tous les éléments
    :ccol:. Le conseil général (du jour) est d'essayer d'utiliser au max ce que fournit Word mais encore faut-il connaître la bonne info ou au moins où la chercher et mais là DVP.com peut t'aider

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/07/2013, 11h17
  2. lecture de documents word
    Par JeanNoel53 dans le forum C++/CLI
    Réponses: 4
    Dernier message: 25/06/2012, 08h11
  3. [Débutant] Problème affichage contenu document
    Par pitite dans le forum VB.NET
    Réponses: 4
    Dernier message: 28/03/2012, 14h43
  4. Réponses: 2
    Dernier message: 11/08/2010, 16h57
  5. Réponses: 0
    Dernier message: 12/12/2007, 15h29

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