请教各位大侠,关于delphi调用word书签的,
用word书签生成报告
现在我有一个模版,书签我也弄好了,也能生成一个报告了。
但我的要求是要根据数据库里的情况,生成多份报告,而且是生成在同一个word里面。
请问实现? if(Application.MessageBox('你确定要生成report文档吗?','提示',MB_OKCANCEL)=IDOK) then
begin
wordapp:=CreateOLEObject('Word.Application');
wordapp.visible:=true;
if Opendialog1.Execute then
FileName:=Opendialog1.FileName; //'f:\a.dot';
wordapp.documents.add(FileName,False);
wordapp.Documents.Item(1).Books.Item('name_1').Range.Text := 'test';
wordapp.Documents.Item(1).Books.Item('no_1').Range.Text := '1111';
wordapp.Documents.Item(1).Books.Item('firstName_1').Range.Text := 'S';
wordapp.Documents.Item(1).Books.Item('LastName_1').Range.Text := 'H';
wordapp.Documents.Item(1).Books.Item('age').Range.Text :='1';
wordapp.Documents.Item(1).Saveas('report1.doc');
end;
用word书签生成报告
现在我有一个模版,书签我也弄好了,也能生成一个报告了。
但我的要求是要根据数据库里的情况,生成多份报告,而且是生成在同一个word里面。
请问实现? if(Application.MessageBox('你确定要生成report文档吗?','提示',MB_OKCANCEL)=IDOK) then
begin
wordapp:=CreateOLEObject('Word.Application');
wordapp.visible:=true;
if Opendialog1.Execute then
FileName:=Opendialog1.FileName; //'f:\a.dot';
wordapp.documents.add(FileName,False);
wordapp.Documents.Item(1).Books.Item('name_1').Range.Text := 'test';
wordapp.Documents.Item(1).Books.Item('no_1').Range.Text := '1111';
wordapp.Documents.Item(1).Books.Item('firstName_1').Range.Text := 'S';
wordapp.Documents.Item(1).Books.Item('LastName_1').Range.Text := 'H';
wordapp.Documents.Item(1).Books.Item('age').Range.Text :='1';
wordapp.Documents.Item(1).Saveas('report1.doc');
end;
解决方案 »
- 关于dbgrid里的升序降序问题!
- 如何通过socket.sendbuff和socket.receivebuff发送和接收一个结构体?
- 请教 treeview 操作 关于节点值 的问题 谢谢 各位帮助我的达人
- 用过RaLib控件的朋友请进, 有分拿
- 谁能告诉我netshareadd这个函数的具体用法!
- 如何得到打印机里的任务数目?
- 求助!SQLServer中图象存取的问题
- 谁知道怎样自定义Win98的安装程序.......
- (107分)纯文本文件中不能存在的字符有哪些?
- delphi7 Indy10时间IdUDPServer1UDPRead中的ABinding怎么用
- 20QB 求段代码 关闭指定端口 的进程
- TCorbaConnection 的配置报NO_IMPLEMENT
那么多份我就不多说吧
看了你的回复,我加了一段:wordapp.Documents.Item(2).Books.Item('name_1').Range.Text := 'test';但执行时报错了,说“集合所要求的成员不存在”敬请指教! 非常感谢!!!!!!
name书签名string
range是word中选中内容 你的书签所表示的地方 举例Selection.Range
非常感谢!!
如果你按下面这样写不行,说一下我再研究加书签 就是指定一个位置range 加一个书签name
wordapp.Documents.Item(1).Books.Item.add(name,range)
所以你加多个书签的难点 是在于找到哪个地方添加的range
我现在碰到的问题是用word做好模版,要替换的地方用word的书签。
然后用delphi对书签相应位置赋值,完成。但是要生成的报告不是只有一两份,数量不定,而我不可能写一个很长的模版。
所以我的解决思路是 根据数据量循环取模版,替换数据后,插入到目标word文件里,打印即可。
碰到的问题是如何反复取模版并插入同一个目标word。
你又不可能提前做好所有书签。if是这样的话 1,你的问题可以变为如何在word指定位置插入内容 2,你为何要用书签呢
{1.通过搜索关键字来定位
2,目录结构 标题级别之类定位
我的资源有份 word api你应该看过吧不然上面书签也写不出来 我资源里面有wps的与word差不多,word api很好找
}
else
{我提供不了建议}