L'auteur
ybenam Algérie Membre Simple # 0000002080 enregistré le 21/04/2008 Fiche personnelle
Note des membres
pas de note
Contributions > 09 - Automation > Word
FUSIONNER DES FICHIERS WORD EN UN SEUL DOCUMENT
# 0000000590
ajouté le 31/05/2008 05:36:16 et modifié le 31/05/2008
consulté 9884 fois
Niveau
débutant Version(s) Foxpro : VFP 6.0
Description
Concaténer une série de fichiers word et sortir un seul document en passant par copy() et paste().Le même principe reste valable pour les documents Office et Iexplore.
Code source :
&& Sommer des fichiers Word en un seul document
#DEFINE wdCollapseEnd 0
loWord = CREATEOBJECT ("word.application" )
ActiveDocument = loWord.Documents.add ()
do while .t.
afile=getfile ('doc' )
if empty (afile)
exit
else
ActiveDocument0 = loWord.Documents.open (afile)
xx=ActiveDocument0.content.copy ()
ActiveDocument0.close ()
*************
ActiveDocument.activate
oRange = ActiveDocument.Range ()
oRange.Collapse(wdCollapseEnd)
myRange = ActiveDocument.Range (ActiveDocument.Content.End - 1,ActiveDocument.Content.End - 1)
myRange.Paste
endi
enddo
ActiveDocument.saveas ("c:\myDoc.doc" )
ActiveDocument.close ()
loWord.quit
***********************************
&&affichage
DECLARE INTEGER ShellExecute IN shell32.dll ;
INTEGER hndWin, STRING cAction, STRING cFileName, ;
STRING cParams, STRING cDir, INTEGER nShowWin
ShellExecute(0,"open" ,"c:\myDoc.doc" ,"" ,"" ,3)
if messagebox ("Raser le fichier c:\myDoc.doc créé ?" ,4+64,"Nettoyage" )=6
set safe off
dele file c:\myDoc.doc
set safe on
endi
Commentaires
Pour sommer des pages web (ici sur disque) voila le code à peu près identique:
#DEFINE wdCollapseEnd 0
loWord = CREATEOBJECT("word.application")
ActiveDocument = loWord.Documents.add()
do while .t.
afile=getfile('htm|html') &&on disc
if empty(afile)
exit
else
ActiveDocument0 = loWord.Documents.open(afile)
xx=ActiveDocument0.content.copy()
ActiveDocument0.close()
*************
ActiveDocument.activate
oRange = ActiveDocument.Range()
oRange.Collapse(wdCollapseEnd)
myRange = ActiveDocument.Range (ActiveDocument.Content.End - 1,ActiveDocument.Content.End - 1)
myRange.Paste
endi
enddo
ActiveDocument.saveas("c:\myDoc.htm",8)
ActiveDocument.close()
loWord.quit
***********************************
&&affichage
DECLARE INTEGER ShellExecute IN shell32.dll ;
INTEGER hndWin, STRING cAction, STRING cFileName, ;
STRING cParams, STRING cDir, INTEGER nShowWin
ShellExecute(0,"open","c:\myDoc.htm","","",3)
if messagebox("Raser le fichier c:\myDoc.htm créé ?",4+64,"Nettoyage")=6
set safe off
dele file c:\myDoc.htm
set safe on
endi