求教Word文件的内容合并问题(200 难)(200分)

  • 主题发起人 主题发起人 akshoot
  • 开始时间 开始时间
A

akshoot

Unregistered / Unconfirmed
GUEST, unregistred user!
AllOleWord, OleWord : OleVariant

先用AllOleWord建一个空文件(还未保存)
再用OleWord依次打开“1.doc”、“2.doc”……“20.doc”(都是模板,并且打开模板后替换了一些内容但没有保存),并试图将其内容一个个“选中——复制——激活AllOleWord——粘贴——激活OleWord——关闭且不保存”的方式,但失败,请问有没有更好的办法啊?
如果需要先保存也没关系,我可以事后把临时文件删了,只要能实现。
谢谢

OleWord.Activate;
OleWord.Application.Selection.WholeStory;
OleWord.Application.Selection.Copy;
OleAllWord.Activate;
OleAllWord.Application.Selection.Paste;
OleWord.Activate;
OleWord.Quit();
OleAllWord.Activate;
//错在哪里?
 
我在生成Word2003报表中也遇到类似问题,发现复制节后,粘贴复制几次就会出错!后改为每次粘贴前复制指定节,生成180页数据表也不出错了。

补充:不用来回激活(OleAllWord.Activate;)
 
Selection.InsertFile FileName:="1111.doc", Range:="", ConfirmConversions:= _
False, Link:=False, Attachment:=False

用InsertFile 方法合并
 
//==============================================================================
//SUMMERAY:合并WORD文档(前提条件是已经打开了一个文档《首文档》)
//Para :FileName(合并文档的名称)
// aOLE(OLE控件)
//ReSult :合并成功返回为True,否则返回为False
//==============================================================================
procedure TSYS_Main_Frm.UnionDocuMents(FileName: string;aOLE:TOleContainer);
var
Range,ConfirmConversioins,Link,Attachment:OLEVariant;
begin
Range:='';
ConfirmConversioins:=false;
Link:=False;
Attachment:=False;
aOle.OleObject.Application.Selection.EndKey(unit := wdStory, Extend := wdMove);//移动光标到末尾
aOle.OleObject.Application.Selection.InsertFile(FileName,Range,
ConfirmConversioins,Link,Attachment);
end;
 
insertfile 是不错的
 
hfghfghfg,既然要从文件读入,那么我必须要保存文件,然后逐一关掉才行,麻烦你再告诉我一下怎样保存word文件和关闭word文件(不是退出整个word)好吗?
 
问题已解决,popogens也是我的另一个ID。
一个强大的软件就此诞生了,哈哈
 
接受答案了.
 

Similar threads

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