delphi word文件 合并 ( 积分: 50 )

  • 主题发起人 主题发起人 shayang
  • 开始时间 开始时间
S

shayang

Unregistered / Unconfirmed
GUEST, unregistred user!
我要通过delphi合成几个word文件。
1.doc的内容是:
AAAAAA……(不全是文字)
2.doc的内容是:
BBBBBB……(不全是文字)
3.doc的内容是:
CCCCCC……(不全是文字)

我需要合成的效果是(用4.doc存盘):
合成的文件
①AAAAAA……(不全是文字)
②BBBBBB……(不全是文字)
③CCCCCC……(不全是文字)

即:[red]我需要“合成的文件”“①”“②”“③”出现在相应位置[/red]
怎么弄?(不要讲一些大道理,直接贴你亲自写的源码来,先开50分,解决了再开新贴送200分)
 
利用OLE 或者ADO 分别打开这3个DOC 往一个新建的DOC中写内容,保存,OVER!
 
不行啊。我在三个文件的基础上加了其它内容的。
不加其它内容的简单合并,我会弄
 
你这个要求价值2k RMB
 
function MegreDocFile(File1, File2, NewFile: string; WordApp: OleVariant): Boolean;
begin
Result := False;
if not FileExists(File1) or not FileExists(File2) then Exit;
if WordApp = Null then
begin
try
if FileExists(NewFile) and not DeleteFile(NewFile) then Exit;
WordApp := CreateOleObject('Word.Application');
except
Exit;
end;
end;
WordApp.Documents.Open(File2);
WordApp.Selection.WholeStory;
WordApp.Selection.Copy;
WordApp.Documents.Open(File1);
WordApp.ActiveDocument.Sentences.Last.Paste;
WordApp.ActiveDocument.SaveAs(NewFile);
WordApp.Quit;
end;

似乎WordApp.ActiveDocument.Sentences.Last这个不太好,楼主再想想怎么把光标移到最后面
 
问问题的现如今都口气这么大?没劲!

我写的合并文档的代码:类本身代表一个打开的文档,
procedure TWordDoc.AddNewPage(FileName:String;WithBreak:Boolean);
var
Break,Style,EndRange,Ext:OleVariant;
CurrSection:Section;
begin
Style:=wdParagraph;
EndRange:=1;
Ext:=wdMove;
if WithBreak then
begin
Break:=wdSectionBreakNextPage; //新节
FComDoc.Application.Selection.Range.InsertBreak(Break);
FComDoc.Application.Selection.MoveDown(style,EndRange,Ext) ;
FComDoc.Application.Selection.Range.InsertFile(FileName,EmptyParam,
EmptyParam,EmptyParam,EmptyParam);
end
else
begin
Break:=wdPageBreak; //新页
FComDoc.Application.Selection.Range.InsertFile(FileName,EmptyParam,
EmptyParam,EmptyParam,EmptyParam);
end;
end;

至于1、2、3就是设置段落样式的问题,简单,就不说了,1000分也懒地写了
 
人心不古,现在的小孩子不知道家长怎么教育的!礼仪之邦难存。
 
后退
顶部