GARANTIR DESCONTO

Fórum Como ler um Arquivo Word e Preencher campos com dados de BD #206594

14/01/2004

0

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


Numeros.info

Numeros.info

Responder

Post mais votado

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:

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.


Aroldo Zanela

Aroldo Zanela
Responder

Gostei + 1

Mais Posts

14/01/2004

Rjosy

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).


Responder

Gostei + 1

14/01/2004

Vanius

tenho algo assim em casa. vou verificar e te envio amanha.


abraçõs,


Vanius


Responder

Gostei + 0

14/01/2004

Vanius

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


Responder

Gostei + 0

11/07/2005

Steve_narancic

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á


Responder

Gostei + 0

21/12/2017

Bfidelis

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.
Responder

Gostei + 0

21/12/2017

Raimundo Pereira

Responder

Gostei + 0

21/12/2017

Raimundo Pereira

Fiz um exemplo no XE7
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;
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar