Página 1 de 1
juntar arquivos do word
Enviado: 20 Jun 2018 12:52
por carlos moc
Boa tarde eu uso TWord() pra gerar uma ficha de cliente e está funcionando blz,só que preciso juntar todas as fichas dos clientes em um só arquivo, tem como fazer isso ?
desde já obrigado pela atenção de todos
juntar arquivos do word
Enviado: 20 Jun 2018 19:04
por rochinha
Amiguinhos,
Olha este código e assimile o conceito:
Código: Selecionar todos
outdocname := "_CONCATENATED.doc"
wdPasteDefault := 0
wdPageBreak := 7
cPath := ".\"
function MAIN // Processo
word := win_CreateObject("Word.Application")
DeleteOldOutput( outdocname )
first := .t.
cExtensao := "DOC"
CONTADOR := ADIR( cPath + "\*." + cExtensao )
IF CONTADOR != 0
DECLARE TXT_NOMES[ CONTADOR ]
ADIR( cPath + "\*." + cExtensao, TXT_NOMES )
FOR CONTADOR := 1 TO LEN( TXT_NOMES )
cfpath := MemoRead( cPath + "\" + TXT_NOMES[CONTADOR] )
if first
outdoc := word:Documents:Add()
outdoc:SaveAs( outdocname )
Processa( cfpath, .t. )
first = .f.
else
Processa( cfpath, .t. )
end if
NEXT
If .Not. first
outdoc:Save()
outdoc:Close()
EndIf
ENDIF
word:Quit()
return nil
function DeleteOldOutput( outdocname )
If File( outdocname )
fErase( outdocname )
EndIf
return nil
function Processa( filename, insertBreak )
doc := word:Documents:Open( filename )
word:Selection:WholeStory()
word:Selection:Copy()
outdoc:Activate()
if insertBreak
word:Selection:InsertBreak( wdPageBreak )
endif
word:Selection:Paste()
doc:Close()
return nil
Não testei.
juntar arquivos do word
Enviado: 22 Jun 2018 12:33
por carlos moc
Fiz algumas alterações e funcionou blz, só que está inserindo uma página em branco no final,já tentei de tudo mas não consegui retirar.kkkkk, quem consegui me avisa ai por favor, mas ja resolveu meu problema.
Código: Selecionar todos
function juntadoc()
outdocname := '\rhino\concatenated.doc'
wdPasteDefault := 0
wdPageBreak := 5
cPath := '\rhino\wordtmp'
TXT_NOMES := {}
word := CreateObject("Word.Application")
if file( outdocname )
fErase( outdocname )
endif
first := .t.
cExtensao := 'doc'
CONTADOR := ADIR( cPath + '\*.' + cExtensao )
IF CONTADOR != 0
TXT_NOMES := directory( cPath + '\*.' + cExtensao )
for contador := 1 to len( txt_nomes )
cFile := cPath + '\' + TXT_NOMES[CONTADOR,1]
ctexto := MemoRead( cPath + '\' + TXT_NOMES[CONTADOR,1] )
if first
outdoc := word:Documents:Add()
outdoc:SaveAs( outdocname )
Processa( cFile,.t.,contador )
first = .f.
else
Processa( cFile,.t.,contador )
endif
next
if .not. first
outdoc:Save()
outdoc:Close()
endif
endif
word:quit()
return .t.
///////////////////////////////////////////////
//
///////////////////////////////////////////////
function Processa( cFile,insertBreak,contador )
doc := word:Documents:Open( cFile )
word:Selection:WholeStory()
word:Selection:Copy()
outdoc:Activate()
if insertBreak
//word:Selection:InsertBreak( wdPageBreak )
endif
word:Selection:Paste()
doc:Close()
return .t.
juntar arquivos do word
Enviado: 22 Jun 2018 13:36
por rochinha
:xau :)Pos
juntar arquivos do word
Enviado: 22 Jun 2018 14:09
por carlos moc
Rochinha fiquei tão empolgado com o resultado que acabei me esquecendo de te agradecer, rapaz resolveu os meus problemas, agora posso gerar todos os relatorios do meu sistema em word e depois exporta pra pdf.obrigado,obrigado
juntar arquivos do word
Enviado: 22 Jun 2018 22:56
por rochinha
Amiguinhos,
carlos moc
acabei me esquecendo de te agradecer
Que é isso. Aqui somos uma comunidade. É ela quem nos agradece em buscar soluções e avolumar conhecimento.
Com certeza a sua dúvida também pode ser a de outro colega e a solução está aí, para todos. E na verdade foi você quem deu a solução.