Delphi操作Word,Excel替换

本文介绍如何使用Delphi来实现对Word和Excel文件的内容替换。通过设置特定格式,如“%+字段名称+%”,可以批量更新数据库数据到文档中,简化文档编辑流程。

有的时候想把数据库里的内容按某种格式写在Word,Excel里,在Word,Excel里按某种格式保存字段名称,下面以“%+字段名称+%"为例


一、Delphi 操作 Word 替换

<pre name="code" class="delphi">procedure ReplaceWordCharacters(WordDoc: Variant; SearchSrc, RplDest: string);
begin
  WordDoc.Activate;
  WordDoc.Application.Selection.Find.ClearFormatting;
  WordDoc.Application.Selection.Find.Replacement.ClearFormatting;
  WordDoc.Application.Selection.Find.Text := SearchSrc;
  WordDoc.Application.Selection.Find.Replacement.Text := RplDest;
  WordDoc.Application.Selection.Find.Forward := True;
  WordDoc.Application.Selection.Find.Wrap := wdFindContinue;
  WordDoc.Application.Selection.Find.Format := False;
  WordDoc.Application.Selection.Find.MatchCase := False;
  WordDoc.Application.Selection.Find.MatchWholeWord := True;
  WordDoc.Application.Selection.Find.MatchByte := True;
  WordDoc.Application.Selection.Find.MatchWildcards := False;
  WordDoc.Application.Selection.Find.MatchSoundsLike := False;
  WordDoc.Application.Selection.Find.MatchAllWordForms := False;
  WordDoc.Application.Selection.Find.Execute(Replace:=wdReplaceAll);
end;
var
  vWord, vDoc: Variant ;
  strText,strReplace : string ;
  I: Integer;
begin
  if dlgOpenWord.Execute then
  begin
    vWord := CreateOleObject('Word.Application');
    try
      vDoc := vWord.Documents.Open(dlgOpenWord.FileName);
      for I := 0 to qryMain.FieldCount - 1 do              //循环字段 
      begin
        strText := '%' + qryMain.Fields[I].FieldName + '%';
        strReplace := qryMain.Fields[I].AsString;
        ReplaceWordCharacters(vDoc, strText, strReplace);  //替换
      end;

      vWord.Visible := True;   // 替换后打开该文件
    finally
      //vDoc.Close(True) ;     //关闭文并保存,如果想让系统自己保函,在这里处理
      //vWord.Quit(False) ;    //退出Word
    end ;
  end;
end;




二、Delphi操作Excel替换

var
  vExcel: Variant ;
  strText,strReplace,strXH : string ;
  I: Integer;
begin
  if dlgOpenExcel.Execute then
  begin
    vExcel := CreateOleObject('Excel.Application');
    try
      vExcel.WorkBooks.Open(dlgOpenExcel.FileName);
      vExcel.WorkSheets[1].Activate;
      vExcel.DisplayAlerts := False;

      for I := 0 to qryMain.FieldCount - 1 do
      begin
        strText := '%' + qryMain.Fields[I].FieldName + '%';
        strReplace := qryMain.Fields[I].AsString;
        vExcel.Worksheets[1].Cells.Replace(strText, strReplace, False);
      end;
      
      vExcel.Visible := True;
    finally
    end;
  end;
end;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值