Substituir texto no Word dentro de uma Caixa de Texto.
Olá.
Tenho uma aplicação usando Delphi2007, onde tenho um modelo de proposta de venda feito no word, minha aplicação lê esse modelo e gera um novo doc substituindo algumas TAGS.
Este modelo o próprio usuário cria. Sendo que ele possui a lista de TAGS disponíveis.
Estava tudo funcionando muito bem, até que um determinado usuário resolveu incluir algumas TAGS dentro de uma caixa de texto para melhor posiciona-las.
Acontece que dentro desta caixa de texto, a TAG não é substituída.
Basicamente o código que estou usando é o seguinte:
procedure TfrmImpProposta.GerarDoc(ArquivoOriginal, ArquivoNovo: String);
var
WinWord, docs : Variant;
begin
WinWord := CreateOleObject('Word.Application');
Docs := WinWord.Documents;
Docs := WinWord.Documents.Open(ArquivoOriginal);
Docs.Content.Find.Execute(FindText := '',
ReplaceWith := 'Claudia');
Docs.SaveAs(ArquivoNovo);
WinWord.Visible:= true;
end;
Se alguém puder me ajudar ficaria muito grata.
Cláudia
Tenho uma aplicação usando Delphi2007, onde tenho um modelo de proposta de venda feito no word, minha aplicação lê esse modelo e gera um novo doc substituindo algumas TAGS.
Este modelo o próprio usuário cria. Sendo que ele possui a lista de TAGS disponíveis.
Estava tudo funcionando muito bem, até que um determinado usuário resolveu incluir algumas TAGS dentro de uma caixa de texto para melhor posiciona-las.
Acontece que dentro desta caixa de texto, a TAG não é substituída.
Basicamente o código que estou usando é o seguinte:
procedure TfrmImpProposta.GerarDoc(ArquivoOriginal, ArquivoNovo: String);
var
WinWord, docs : Variant;
begin
WinWord := CreateOleObject('Word.Application');
Docs := WinWord.Documents;
Docs := WinWord.Documents.Open(ArquivoOriginal);
Docs.Content.Find.Execute(FindText := '',
ReplaceWith := 'Claudia');
Docs.SaveAs(ArquivoNovo);
WinWord.Visible:= true;
end;
Se alguém puder me ajudar ficaria muito grata.
Cláudia
Claudia Oliveira
Curtidas 0
Melhor post
Claudia Oliveira
29/07/2010
Resolvido :
for i := 1 to WinWord.ActiveDocument.Shapes.Count do begin WinWord.ActiveDocument.Shapes.Item(i).TextFrame.TextRange.find.Execute(FindText := '<NOME-CLIENTE>', ReplaceWith := 'Claudia'); end;
Obrigada
for i := 1 to WinWord.ActiveDocument.Shapes.Count do begin WinWord.ActiveDocument.Shapes.Item(i).TextFrame.TextRange.find.Execute(FindText := '<NOME-CLIENTE>', ReplaceWith := 'Claudia'); end;
Obrigada
GOSTEI 1
Mais Respostas
Marcos Iwazaki
29/07/2010
Oi...bom eu faço assim
wordapp.selection.find.replacement.text := Seu_Texto; wordapp.selection.find.execute(replace := wdreplaceall);
qq dúvida é so perguntar
wordapp.selection.find.replacement.text := Seu_Texto; wordapp.selection.find.execute(replace := wdreplaceall);
qq dúvida é so perguntar
Olá.
Tenho uma aplicação usando Delphi2007, onde tenho um modelo de proposta de venda feito no word, minha aplicação lê esse modelo e gera um novo doc substituindo algumas TAGS.
Este modelo o próprio usuário cria. Sendo que ele possui a lista de TAGS disponíveis.
Estava tudo funcionando muito bem, até que um determinado usuário resolveu incluir algumas TAGS dentro de uma caixa de texto para melhor posiciona-las.
Acontece que dentro desta caixa de texto, a TAG não é substituída.
Basicamente o código que estou usando é o seguinte:
procedure TfrmImpProposta.GerarDoc(ArquivoOriginal, ArquivoNovo: String);
var
WinWord, docs : Variant;
begin
WinWord := CreateOleObject('Word.Application');
Docs := WinWord.Documents;
Docs := WinWord.Documents.Open(ArquivoOriginal);
Docs.Content.Find.Execute(FindText := '',
ReplaceWith := 'Claudia');
Docs.SaveAs(ArquivoNovo);
WinWord.Visible:= true;
end;
Se alguém puder me ajudar ficaria muito grata.
Cláudia
Tenho uma aplicação usando Delphi2007, onde tenho um modelo de proposta de venda feito no word, minha aplicação lê esse modelo e gera um novo doc substituindo algumas TAGS.
Este modelo o próprio usuário cria. Sendo que ele possui a lista de TAGS disponíveis.
Estava tudo funcionando muito bem, até que um determinado usuário resolveu incluir algumas TAGS dentro de uma caixa de texto para melhor posiciona-las.
Acontece que dentro desta caixa de texto, a TAG não é substituída.
Basicamente o código que estou usando é o seguinte:
procedure TfrmImpProposta.GerarDoc(ArquivoOriginal, ArquivoNovo: String);
var
WinWord, docs : Variant;
begin
WinWord := CreateOleObject('Word.Application');
Docs := WinWord.Documents;
Docs := WinWord.Documents.Open(ArquivoOriginal);
Docs.Content.Find.Execute(FindText := '',
ReplaceWith := 'Claudia');
Docs.SaveAs(ArquivoNovo);
WinWord.Visible:= true;
end;
Se alguém puder me ajudar ficaria muito grata.
Cláudia
GOSTEI 0
Claudia Oliveira
29/07/2010
Certo..Mas onde defino qual tag quero substituir pelo texto ?
GOSTEI 0
Marcos Iwazaki
29/07/2010
disfarça.... esqueci de postar outro codigo
wordapp.selection.find.text := Seu_Texto; wordapp.selection.find.replacement.text := Seu_Texto_Para_Substituir; wordapp.selection.find.execute(replace := wdreplaceall);
wordapp.selection.find.text := Seu_Texto; wordapp.selection.find.replacement.text := Seu_Texto_Para_Substituir; wordapp.selection.find.execute(replace := wdreplaceall);
GOSTEI 0
Claudia Oliveira
29/07/2010
Entendi .. vou testar .. por enquanto.. obrigada
GOSTEI 0