请问如何通过delphi调用word的向导,生成固定格式的word文档 ( 积分: 150 )

  • 主题发起人 主题发起人 菜鸟编程
  • 开始时间 开始时间

菜鸟编程

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟正在开发一个标准模板的系统,通过调用word的模板,利用word向导一步一步生成文档,word模板已经生成,不知道如何才能调用出word的向导呢?
 
没人肯帮忙吗?是不是太简单了?项目的需求就是做一个word的向导,向导中有些数据是通过数据库提取出来的,这个项目以前是别人用DLPHI做的,现在需要重新开发,原来的程序都经过了加密,因此,生成的DOT文件现在也无法打开,有哪位大哥或大姐帮帮忙啊,我现在连思路也没有,是先做word模板再通过程序调用这个模板,还是利用程序连模板一块儿做上?还有delphi和.NET这两个开发工具,利用哪一个更方便呢?好心的人啊,我在线等,小弟愚笨,做了一周了还没任何进展。谢谢了!
 
什么是WORD的向导?
 
在新建word文档的时候,可以选择根据模板新建,然后就会出现一个向导,指引你一步一步完成文档的制作。
 
USES ComObj;
//keylist中添加要替换的文本,每行一个
//Vlist中添加替换成的文本,每行一个
//vlist中为空则替换keylist中的每一行为空
//filein是WORD模板文件
//fileout是WORD生成结果
FUNCTION replace(CONST fileIn,fileout: STRING; CONST keylist, vlist: tstrings):
boolean;
VAR
vWord, vDoc, vRange: Variant;
lReturn : Boolean;
i : integer;
BEGIN
TRY
//如果Vlist中的数据行数据少,会报索引超出范围的错误
WHILE keylist.Count >= vlist.Count DO
vlist.Add('');

vWord := CreateOleObject('Word.Application'); //创建Word线程
TRY
//打开要操作的文件
vDoc := vWord.Documents.Open(fileIn);
vDoc.Select; //选取中整个文档
vRange := vDoc.Range; //替换范围
lReturn := True;
FOR i := 0 TO keylist.Count - 1 DO
WHILE lReturn DO
BEGIN
//找到并替代成功则返回 True 共11个参数
lReturn := vDoc.Range.Find.Execute(keylist.Strings, , , , , , , ,
, vlist.Strings,
True);
END;
vDoc.saveas(fileout);
FINALLY
vDoc.Close(True);
vWord.Quit(False);
END;
result := true;
EXCEPT
if varisnull(vdoc) then vDoc.Close(True);
if varisnull(vWord) then vWord.Quit(False);
result := false;
END;
END;
把模板里的要替换文字都放到KEYLIST里去,把新的值放到VLIST中去,指定模板文件名,新文件名就可以了,成功返回TRUE,失败返回FALSE
如果没有安装WORD那就不行了
 
后退
顶部