lire un fichier.doc avec la classe interop.word
Bonjour,
j'ai un fichier .doc et je voudrais le lire ligne par ligne mais je sais pas quelle méthodes utilisé de la classe interop.word
merci
ouvrir UN DOC WORD,microsoft word
bonjour
pour ouvrir un doc word ,c'est facile vas-y,c'est pique de msdnlibrary:
Appelez la méthode Open de la collection Documents et fournissez un chemin d'accès au document:
--------------------------------------------------------------------------
Code:
1 2
|
Me.Application.Documents.Open("C:\Test\NewDocument.doc") |
Cette méthode retourne un Microsoft.Office.Interop.Word.Document evidemment puisque c'est par code.
Ouvert en lecture seule:
-----------------------
Code:
1 2
|
Me.Application.Documents.Open(FileName:="C:\Test\NewDocument.doc", ReadOnly:=True) |
------------------------
Pour créer un document basé sur le modèle Normal.dot
Code:
Me.Application.Documents.Add()
----------------------------
Pour créer un document basé sur un modèle personnalisé
Code:
Me.Application.Documents.Add(Template:="C:\Test\SampleTemplate.Dot")
------------------------------
enregistrer un doc actif
1/projet classeur
Code:
1 2
|
Me.Close(Word.WdSaveOptions.wdSaveChanges) |
1/projet complement
Code:
1 2
|
Me.Application.ActiveDocument.Close(Word.WdSaveOptions.wdSaveChanges) |
------------------------------
enregistrer un doc sous un nom perso:
1/projet classeur
Code:
1 2
|
Me.SaveAs("C:\Test\NewDocument.doc") |
1/projet complement
Code:
1 2
|
Me.Application.ActiveDocument.SaveAs("C:\Test\NewDocument.doc") |
--------------------------
tu peux compter tous les caracteres d'un doc:
Code:
1 2 3 4 5 6
|
Dim rng As Word.Range = Me.Range(0, Me.Characters.Count)
rng.Select() 'tout le doc
Dim rng As Word.Range = Me.Range(0, Me.Characters.Count)
rng.Select()
MessageBox.Show("nb Caracteres: " & Me.Characters.Count.ToString()) |
tu peux utiliser la methode find de range si tu sais par quoi se termine "tes lignes"(marque de fin de ligne):
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
Private Sub BoucleTrouve()
Dim nbTrouve As Integer = 0
Dim rng As Word.Range = Me.Application.ActiveDocument.Content
rng.Find.ClearFormatting()
rng.Find.Forward = True 'vers l'avant
rng.Find.Text = "mm"
rng.Find.Execute()
Do While rng.Find.Found = True 'tant que trouve
nbTrouve += 1
rng.Find.Execute()
Loop
MessageBox.Show("nb chaines trouvees: " & nbTrouve.ToString())
End Sub |
Pour lire les lignes ,il faut definir dans word ce que tu entends par ligne .
Une ligne dans Word ou un RichTextBox, ca n'as aucun sens.Ainsi tu peux creer dans Word sans -tabulation,ni cr, ni espace- une absurdite pour un esprit humain un mot de 100000 de caracteres ou une ligne de 5000 caracteres.
Je dis bien un mot qu'il faille une annee pour le prononcer et du souffle,que tous les academiciens reunis ne pourraient ni ecrire ni comprendre.
Je dis ceci pour detendre l'atmosphere et rire un peu mais c'est la realite.
Mefie toi des metaphores,en francais,moi j'en sais quelque chose en arabe...
Bon code et bonne soiree...