Como ler um Arquivo Word e Preencher campos com dados de BD
Como faço para ler atravez de um aplicativo Delphi um arquivo que está em Word e imprimir preenchendo alguns campos com informações de um BD.
Solicito se possivel um exemplo ou onde encontro informações sobre o assunto.
Ps. Meu chefe me falou q se em dois dias isto não estiver resolvido com certeza eu vou ter problemas.
Atenciosamente,
Tadeu
Solicito se possivel um exemplo ou onde encontro informações sobre o assunto.
Ps. Meu chefe me falou q se em dois dias isto não estiver resolvido com certeza eu vou ter problemas.
Atenciosamente,
Tadeu
Numeros.info
Curtidas 0
Melhor post
Aroldo Zanela
14/01/2004
Colega,
Acho que o uso do próprio Word para utilizar um banco de dados externo vai resolver o teu problema (do seu chefe). No entanto, você pode utilizar o seguinte exemplo:
Onde @01 e @02 são constantes que estão no texto do DOC do word que serão substituidos.
Acho que o uso do próprio Word para utilizar um banco de dados externo vai resolver o teu problema (do seu chefe). No entanto, você pode utilizar o seguinte exemplo:
var Form2: TForm2; Word2k: Variant; implementation ........... procedure TForm2.btnContratoClick(Sender: TObject); var Doc: Variant; begin Word2k := CrieObjeto(´Word.Application´); Doc := Word2k.Documents.Open(´c:\dados\factoring\contrato de factoring.doc´); // Contratante Doc.Content.Find.Execute(FindText := ´@01´, ReplaceWith := tbCadastroCED_NOME.Value); Doc.Content.Find.Execute(FindText := ´@02´, ReplaceWith := tbCadastroCED_DENOM.Value); Word2k.Visible := true; end;
Onde @01 e @02 são constantes que estão no texto do DOC do word que serão substituidos.
GOSTEI 1
Mais Respostas
Rjosy
14/01/2004
Se entendi bem, vc quer um doc e mesclá-lo com dados do bd.
Existe um pacote gratuito para isso.
Procure na web por EkRtf (o nome começa com EkRtf, não lembro o nome precisamente).
Existe um pacote gratuito para isso.
Procure na web por EkRtf (o nome começa com EkRtf, não lembro o nome precisamente).
GOSTEI 1
Vanius
14/01/2004
tenho algo assim em casa. vou verificar e te envio amanha.
abraçõs,
Vanius
abraçõs,
Vanius
GOSTEI 0
Vanius
14/01/2004
lembrei.
é um livro que ensina a usar componentes da palheta SERVERS para o Delphi 5.
Se nao me engano é ´Utilizando o microsoft office em Delphi 5´.
De uma olhada no site da editora relativa. Tem propaganda dela nas revistas do clube delphi.
Mas amanha te envio o fonte.
Abraços,
Vanius
é um livro que ensina a usar componentes da palheta SERVERS para o Delphi 5.
Se nao me engano é ´Utilizando o microsoft office em Delphi 5´.
De uma olhada no site da editora relativa. Tem propaganda dela nas revistas do clube delphi.
Mas amanha te envio o fonte.
Abraços,
Vanius
GOSTEI 0
Steve_narancic
14/01/2004
O Exemplo sugerido funciona perfeitamente para o Corpo do documento, mas como fazer para que as constantes que estão em um cabeçalho ou rodapé sejam igualmente substituidas?
Agradeço pela atenção desde já
Agradeço pela atenção desde já
GOSTEI 0
Bfidelis
14/01/2004
Galera tenho um documento word padrão usado na empresa para fazer uma lista de presença em treinamentos, porém agora eles querem gerar essa lista, com os nomes dos participantes, já preenchida através do sistema. Vi aqui como alterar campos, mas no meu caso além de alguns que só precisam ser inseridos uma vez, tenho o detail, isso é, todos os participantes do treinamento. Alguém pode me ajudar? É meio urgente.
GOSTEI 0
Raimundo Pereira
14/01/2004
Bom dia!
Veja este tópico
https://www.devmedia.com.br/passar-parametros-para-word-a-partir-do-delphi-dica/15723
Veja este tópico
https://www.devmedia.com.br/passar-parametros-para-word-a-partir-do-delphi-dica/15723
GOSTEI 0
Raimundo Pereira
14/01/2004
Fiz um exemplo no XE7
Declare em Uses ComObj.
Você pode substituir os edits por campos do seu banco de dados.
Declare em Uses ComObj.
Você pode substituir os edits por campos do seu banco de dados.
var
WinWord, Docs, Doc: Variant;
begin
WinWord := CreateOleObject('Word.Application');
// Tornar o word visivel
WinWord.Visible := True;
// Abrir arquivo para edição
Doc:= WinWord.Documents.Open(ExtractFilePath(Application.ExeName)+'Modelo.doc');
// Substituir itens do arquivo por texto escolhido
Doc.Content.Find.Execute(FindText := '@aluno' , ReplaceWith := EdtNome.Text);
Doc.Content.Find.Execute(FindText := '@treinamento', ReplaceWith := EdtTreinamento.Text);
Doc.Content.Find.Execute(FindText := '@horario' , ReplaceWith := EdtHorario.Text);
// Salvar Documento
Doc.SaveAs(ExtractFilePath(Application.ExeName) + EdtNome.Text + '.doc');
if Application.MessageBox('Deseja Fechar o Documento?','Confirmação',MB_ICONQUESTION)=ID_OK then
WinWord.Quit;
// Fechar
end;
GOSTEI 0