请yzhshi 老师进来!(50分)

  • 主题发起人 主题发起人 com$$
  • 开始时间 开始时间
C

com$$

Unregistered / Unconfirmed
GUEST, unregistred user!
前天看了您贴的东西的收益非浅,谢谢,我阵遇到这方面的东西,现遇到问题特想您请教!
小弟在这方面是菜鸟,还请老师多指点。
我现在以实现将DELPHI数据库里的东西写入WORD,但是只能一行一行的写如,我现在想让它
按某中格式,有为朋友告诉我要用WORD模板,我听懂了些,但自己写却不行了,这是我的一些代码
worddocument1.Range.InsertAfter('species name:'+table1.Fields.Fields[3].AsString+#13 );
worddocument1.Range.InsertAfter('length:'+table1.Fields.Fields[4].AsString+#13);
worddocument1.Range.InsertAfter(''+#13);//添加空行
这样只能一行行显示,可我如果想按报纸或试卷那样,按指定格式来,我就不会了,希望您能
给我些帮助,小弟被该问题困惑了2天了,还没解决,希望可以指点小弟,谢谢!
 
使用标签,然后替换就可以了。
今天我就要走了,继续关注你这个问题!
另外,不要称呼为老师,我距离老师还差许多呢。
 
标签,是什么?你可以给我一两句,我只想看看,我在自己写
 
我是他的代表!!呵呵!!!
 
您可以帮我吗,我都被困惑两天了
 
没人理我,这个问题我实在不会呀?
 
咋还是没有人肯说一句话呢?
 
指定的什么格式,应该不难,你先说说看。
 
是书签,呵呵,昨天一着急,写成标签了,就是插入->书签,然后定义上名称,在对书签内的文字设置好格式。
保存成dot模板文档,使用的时候,查找特定名称的标签,然后进行替换就可以了。
缺点,1、模板中的书签如果被删除,则不能替换 2、如果本来书签内有2个字,但是替换成多个字了,格式有变化。

var BookMark_Name: string;
//替换书签
BookMark_Name := '你定义的书签';
Doc_Handle.Application.Selection.goto(What := wdGoToBookmark, Name := BookMark_Name);
Doc_Handle.Application.Selection.Text := '你要替换成的文字';
//定位书签
Doc_Handle.Application.Selection.goto(What := wdGoToBookmark, Name := '你定义的书签');
 
to yzhshi, :
我听一位高手说用WORD模板做,那改如何?
给我发过来好吗?
WANGHUISs@163.net
谢谢!
 
就是使用模板呀。
也就是启动Word,然后插入一些标签,最后保存成dot就可以了。
就这么简单,真的需要发的话,你再留言一次,OK!
 
替换的部分程序。另外我给你发送一份去了。
uses
comobj, word2000;

procedure TForm1.Button1Click(Sender: TObject);
var
Word_Handle, Doc_Handle: OleVariant;
BookMark_Name: string;
begin

try
Word_Handle := GetActiveOleObject('Word.Application');
except
try
Word_Handle := CreateOleObject('Word.Application');
except
end;
end;
Word_Handle.Visible := True;

Doc_Handle := Word_Handle.Documents.Add(Template := 'C:/1.dot', NewTemplate := False);

try
BookMark_Name := 'book1';
Doc_Handle.Application.Selection.goto(What := wdGoToBookmark, Name := BookMark_Name);
Doc_Handle.Application.Selection.Text := '这个是替换book1的结果';

BookMark_Name := 'book2';
Doc_Handle.Application.Selection.goto(What := wdGoToBookmark, Name := BookMark_Name);
Doc_Handle.Application.Selection.Text := '这个是替换book2的结果';
except
end;

Doc_Handle.SaveAs(FileName := '1.doc', FileFormat := wdFormatDocument, AddToRecentFiles := False);
end;
 
能给我发一份吗?谢谢!
jingwei@goldeastpaper.comn
 
这是我的邮箱,
wanghuiss@163.net
谢谢
 
没有收到吗?我是使用特快专递的呀。
好我再发送一次!
 
lobate,你的email地址写错了,还好foxmail的特快专递发现是.com.cn,而不是.com,所以也发送了。
 
我很感兴趣,给我一份好吗?
To :ddntyz@263.net
 
各位对WORD感兴趣的同行,高抬贵手看看:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=934473
 
各位,小弟研究了一下明白了一些,但有遇到新问题:
用yzhshi的解法的确不错,假如我先设10个书签,那么就可以插入10道题,那么假如用户自己
做了一个20个书签的模板,我的程序里咋知道它有20个,也许大家认为我很死板,但是
BookMark_Name := 'book1';
Doc_Handle.Application.Selection.goto(What := wdGoToBookmark, Name := BookMark_Name);
Doc_Handle.Application.Selection.Text := '这个是替换book1的结果';

BookMark_Name := 'book2';
Doc_Handle.Application.Selection.goto(What := wdGoToBookmark, Name := BookMark_Name);
Doc_Handle.Application.Selection.Text := '这个是替换book2的结果';
。。。。。。。。。。。。
我的意思是如何在程序里根据用户建立的书签个数来将数据插入到相应的书签里呢?不可能说让用户
每次使用一次还要去改动原代码呀

 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部