有的时候想把数据库里的内容按某种格式写在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;
本文介绍如何使用Delphi来实现对Word和Excel文件的内容替换。通过设置特定格式,如“%+字段名称+%”,可以批量更新数据库数据到文档中,简化文档编辑流程。

1243

被折叠的 条评论
为什么被折叠?



