频道分类

Delphi 如何替换Word文档中的文本

作者:admin 来源: 日期:2020/9/15 14:10:12 人气: 标签:

 
use ActiveX, ComObj;

const 
  wdFindContinue = 1;
  wdReplaceOne = 1;
  wdReplaceAll = 2;

var 
  WordApp: Variant;

begin
  // create OLE object for MS Word application:
  WordApp := CreateOLEObject('Word.Application');
  // load a document from your file
  WordApp.Documents.Open(yourDocFileName);
  WordApp.Selection.Find.ClearFormatting;
  WordApp.Selection.Find.Text := yourStringForSearch;
  WordApp.Selection.Find.Replacement.Text := yourNewStringForReplace;
  WordApp.Selection.Find.Forward := True;
  WordApp.Selection.Find.MatchAllWordForms := False;
  WordApp.Selection.Find.MatchCase := Flase;
  WordApp.Selection.Find.MatchWildcards := False;
  WordApp.Selection.Find.MatchSoundsLike := False;
  WordApp.Selection.Find.MatchWholeWord := False;
  WordApp.Selection.Find.MatchFuzzy := False;
  WordApp.Selection.Find.Wrap := wdFindContinue; 
  WordApp.Selection.Find.Format := False;
  
  WordApp.Selection.Find.Execute(Replace := wdReplaceAll)
end;

//要替换首次出现的文字,请使用
WordApp.Selection.Find.Execute(Replace := wdReplaceOne);
替换
WordApp.Selection.Find.Execute(Replace := wdReplaceAll)

//要检查是否找到了文本,请使用Found方法:
if WordApp.Selection.Find.Found then
  {do something}
Save the modified document with:

WordApp.ActiveDocument.SaveAs(yourDocFileName);

//最后,使用以下命令关闭MS Word实例:
WordApp.ActiveDocument.Close;
WordApp.Quit;
WordApp := Unassigned;
注意:
如果要更改字体而不是文本,请使用WordApp.Selection.Find.Replacement的Font 属性而不是 Text。