你可以将打开的文档设成模板文件(.dot文件),然后利用模板文件生成word文档。
如果编译有问题试一下在前面Use word97。
var
FileName //文件名称
: string;
i: integer; //临时变量
itemindex //Document的Item的索引。
, TempPlate //Word模板的临时变量。
, newtemplate //Word模板的临时变量。
: OleVariant;
itemindex := 1;
tempPlate := Filename;
newtemplate := false;
WordApplication1.Connect;
WordApplication1.Visible := true;
WordApplication1.Documents.Add(TempPlate, newtemplate); //按照指定的模板,新建一个Word文件。
WordDocument1.ConnectTo(WordApplication1.Documents.Item(itemindex));
procedure openwordfile(Myword: TWordApplication; Myfile: string;IsVisible:Boolean); //打开Word文档函数。
//Myword:文档工程名称;Myfile:word文件名;IsVisible来控制是否显示。
var
FileName, ConfirmConversions, ReadOnly, AddToRecentFiles,
PasswordDocument, PasswordTemplate, Revert,WritePasswordDocument,
WritePasswordTemplate, Format,MatchCase, MatchWholeWord, find1, rep1,
MatchWildcards, MatchSoundsLike, MatchAllWordForms, Forward,
Wrap, Replace: OleVariant;
{以上的变量都是TDocument.open函数所必需的,都是系统默认的,详情请参看Word的Help}
{可能会碰到错误的提示,一种情况是Uses一下Office97就可以了。}
begin
Myword.Visible :=IsVisible;
FileName := MyFile; //打开的文件名称。
confirmConversions := False;
ReadOnly := False;
AddToRecentFiles := False;
PasswordDocument := '';
PasswordTemplate := '';
Revert := True;
WritePasswordDocument := '';
WritePasswordTemplate := '';
Format := wdOpenFormatDocument;
myWord.Documents.Open(FileName, ConfirmConversions,
readOnly, AddToRecentFiles, PasswordDocument, PasswordTemplate,
Revert, WritePasswordDocument, WritePasswordTemplate, Format);
// myword.Visible := false;
end;
//打开Word文档函数(结束)
procedure RepData(MyDoc: TWordDocument; FindStr, RepStr: string); //利用数据库替换Word字符串函数
//FindStr:被查找的字符串。RepStr:要替换的字符串。
var
MatchCase, MatchWholeWord, find1, rep1, Format,
MatchWildcards, MatchSoundsLike, MatchAllWordForms, Forward,
Wrap, Replace: OleVariant;
{以上函数为Word实现替换的系统变量,详情请参阅Word的在线帮助。}
begin
Find1 := FindStr; //替换的目的字符串。
Rep1 := RepStr; //替换的源字符串。
MatchCase := false;
MatchWholeWord := true;
MatchWildcards := false;
MatchSoundsLike := false;
MatchAllWordForms := false;
Format := true;
Forward := true;
replace := wdReplaceall;
{if} Mydoc.Range.Find.Execute(find1, MatchCase, MatchWholeWord,
MatchWildcards, MatchSoundsLike, MatchAllWordForms, Forward,
Wrap, Format, Rep1, Replace);
end;
//利用数据库替换Word字符串函数(结束)