我有相应的源代码,可以给你参考一下,留下你的E_Mail
解决方案 »
- wps office 2005 竟然是用 delphi写的!!!
- 急,急,急...含TnT控件的程序打包安装后不能用
- 系统基础资料输入的画面该如何设置(特别是很多的表有大量的栏位要填的情况) ?
- 小妹我刚学delphi,请问该从什么学起?
- 有一个date型的数据和一个time型的数据,请问如何把他们两个合成一个datetime型数据
- 关于delphi的简单问题.
- 超级难题!关于数据库导出~~~
- 版主,去年的帖子我哪有二三十个没有结啊!最多五个,但信誉分被扣了二十五分,信誉分变化记录里也查不到变化记录,请版主说明原因.
- 谁能帮我这把java函数转为delphi的
- D7.06 和 MDAC2.7的问题:
- 大家给我未来的孩子起个名字吧?姓来!
- 怪哉,请帮忙
至于WORD中的分页,可以去看WORD自己做这些事时的宏代码,然后翻译成DELPHI代码即可。
谢谢,[email protected]
给俺一份!
谢谢
谢谢你的代码,问题仍没有解决!
对我来说主要的难点是如何让第一个记录在第一个页里相应表格中
,第二个记录在第二页相应表格中,第三个记录在第三个页相应表格中等等?
望大虾帮忙!谢谢!
我查了整个的csdn旧贴,也没有结果,希望大虾指出!
如你认为不可能实现这个功能,望也解释一下,谢谢!
或那里有比较全的delphi操作word的资料望给个网址!
[email protected]
谢谢,明天给你发,代码现在不在身边
to:Kingron(单身走我路……)
谢谢,我用delphi时间不是很长,对我来说还是很难!
不过你好想象没有明白我的意思.
你只要告诉我如何从一个word模版(只有一页,而且有三个表,表格行和列没有规则)中,把这个word模版在完全覆盖到第二页,第三页(页的个数就是查询到记录集的个数,也就是你事先做好的是word模版页的个数是动态改变的(第一页的数据库中数据是第一条记录,第二页的数据库中数据是第二条记录,等等)
word模版如图
表1
|----1数据库中数据-----|---2名称---|----3数据库中数据------|
|----2-----|--------4-------|--5年龄--|——6数据库中数据---|
表2
|----1-----|-------2--------|-----------3-----------|--4---|
| | |
|----5-----|-------6数据库中数据----------|-------7--------|
表3
|---1---|------2-------|---------3----------|------4-------|
谢谢!
能给我源码吗[email protected]
谢谢了
Sub CPTable()
' 注意0表示开始,143表示结束,你可以自己多多调试
' 这个表示需要选择的表格的范围
Set MyRange = ThisDocument.Range(0, 143)
MyRange.Select ' 选择选中的表格和文字
MyRange.Copy ' 复制
Selection.EndKey Unit:=wdStory ' 移动倒文档末尾
Selection.InsertBreak (wdPageBreak) ' 插入分页符
Selection.Paste ' 粘贴
End Sub利用上面的代码生成了页面和表格之后,你就可以利用Tables.Item来操作表格了,而下面的代码就简单了,在此不多说。剩下的就是计算表格的Index了,这个很简单的吧?一个记录3个表格,那么第二个记录就是第4\5\6个表格,以此类推,如果要操作表格里面的单元个,只要操作Tables.Item(Index).Cell(i,j)即可。
老大你说的我知道,对我来说,难就难在这些宏转换到Delphi上,我用的是delphi5.0
代码如下:
var
Wordhandle,dochandle,MyRange:Variant;
BookMark_Name,renflag :string;
i:integer;
begin
Wordhandle:=CreateOLeObject('Word.application');
wordhandle.visible:=true;
DocHandle :=WordHandle.Documents.Open('C:\112.Doc');//打开word模版
DocHandle.select;//选取整个文档
DocHandle.range.copy;//复制范围
DocHandle.select.EndKey(Unit:=wdStory); //' 移动倒文档末尾
DocHandle.select.InsertBreak(wdPageBreak); //' 插入分页符
DocHandle.select.Paste //' 粘贴
end;
在DocHandle.select.EndKey(Unit:=wdStory); 和DocHandle.select.InsertBreak(wdPageBreak); 这两个地方,我就不只如何
换到Delphi上
再次感谢Kingron(单身走我路……)而且为什么DocHandle.点后没有任何的属性?
至于没有Code Insight的功能,这是因为OLE是Variant的,Delphi无法进行自动完成功能,因此你需要自己翻阅VBA的资料,下面我就演示如何翻译VBA,说明,下面的代码没有经过测试,纯粹是随手写的。
procedure CPTable;
var
MyRange,WordApp,WordDoc:OleVariant;
begin
WordApp:=CreateOleObject('Word.Application');
WordDoc:=WordApp.Documents.Open('C:\A.Doc');
MyRange:=WordDoc.Range(0,143);
MyRange.Select;
MyRange.Copy;
WordApp.Selection.EndKey(wdStory);
WordApp.Selection.InsertBreak(wdPageBreak);
WordApp.Selection.Paste;
WordDoc.Save;
VarClear(MyRange);
VarClear(WordDoc);
VarClear(WordApp);
end;