word文档的合并,不够再加分 我现在要实现2个WORD文档,现在要把他合并成一个(在程序中可以是WORDAPPLICATION也可以OLE)请问我该怎么做不过如果能实现把多个流都追加到一个OLE或者WORD文档也行谢谢!!!!!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //========begin保存为doc文件========//Procedure BlobFld2OleSaveasdoc(var dataQuery:TQuery;fldName:String; Ole: TOleContainer);var OleStream:Tstream; NameId: String;begin NameId := dataQuery.FieldByName('element_Id').asstring; OleStream := dataQuery.CreateBlobStream(dataQuery.fieldbyName(fldName),bmRead); if OleStream.Size >0 then begin OLE.LoadFromStream(OleStream); Ole.SaveAsDocument(TempPath+NameId+'.doc');//TempPath 为.doc文件的路径 Ole.Close ; OleStream.free; end else begin Ole.CreateObject('word.document',false); end;end;//========end保存为doc文件========//FileListBox1.Directory := TempPath;FileLIstbox1.Mask :='*.doc';//Filelistbox1 用于取“.doc”文件 //========begin合并doc文件========// TempFileName := extractfilepath(Application.ExeName)+'TempdocFile\Tempdoc.dot';//tempdoc.dot用于存放合并的主文件 wordapplication1.Connect; wordapplication1.Documents.Open(TempFileName,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam);WordDocument1.ConnectTo(wordapplication1.Documents.Item(TempFileName)); WordDocument1.Select ; WordDocument1.Range.Cut ;//清空.dot文件 for FileNameOrder := 0 to FileListBox1.Items.Count -1 do begin FromFileName := TempPath + FileListBox1.Items.Strings[FileNameOrder]; wordapplication1.Documents.Open(FromFileName,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam); WordDocument2.ConnectTo(wordapplication1.Documents.Item(FromFileName)); WordDocument2.Select ; WordDocument2.Range.Copy; WordDocument2.Close ; WordDocument1.Paragraphs.Last.Range.Paste; end;{for for FileNameOrder := 0 to FileListBox1.Items.Count -1} Wordapplication1.Visible:=true;//结果显示。 //========end合并doc文件========// uses comobj;procedure Tmenufrm.Button1Click(Sender: TObject);var oe:variant;begin oe:=CreateOleObject('word.Application'); oe.visible:=true; oe.Documents.Add(DocumentType:=wdNewBlankDocument); oe.ChangeFileOpenDirectory(文件路径); oe.Selection.InsertFile(FileName:='doc1.doc', Range:='', ConfirmConversions:=False, Link:=False, Attachment:=False); oe.Selection.InsertFile(FileName:='doc2.doc', Range:='', ConfirmConversions:=False, Link:=False, Attachment:=False); oe.Selection.InsertFile(FileName:='doc3.doc', Range:='', ConfirmConversions:=False, Link:=False, Attachment:=False);end;补充,第一行再补充上word2000或wordxp(视乎你安装DELPHI时的OFFICE选项)方法二:form中放两个控件wordApplication1、worddocument1.procedure TForm1.Button1Click(Sender: TObject);begin wordapplication1.Connect; wordapplication1.Visible:=true; wordapplication1.Documents.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam); worddocument1.ConnectTo(wordapplication1.ActiveDocument); wordapplication1.ChangeFileOpenDirectory(文件路径); wordapplication1.Selection.InsertFile(doc1.doc',EmptyParam,EmptyParam,EmptyParam,EmptyParam); wordapplication1.Selection.InsertFile(doc2.doc',EmptyParam,EmptyParam,EmptyParam,EmptyParam); wordapplication1.Selection.InsertFile(doc3.doc',EmptyParam,EmptyParam,EmptyParam,EmptyParam);end; 结构体的问题。。。 关于视频采集卡的两个问题 请教Teechart控件横坐标的设置问题。 如何控制扫描仪 select 选择查讯结果的第几条请问怎么弄 谢谢大家关心,我的新书即将完成,在此贴出《Delphi高手突破》目录初稿 怎样在网页中制作树型目录 我的防火墙老是提示别的ip地址访问我的Http[80] 端口 ----StringGrid中的两个整型变量 AROW 和 ACOL是做意思呀?----- 问题过于简单就不简单了,请帮忙? 怎样把stringgrid内的内容清干净? 如何保存每个进程只HOOK一次??
Procedure BlobFld2OleSaveasdoc(var dataQuery:TQuery;fldName:String; Ole: TOleContainer);
var
OleStream:Tstream;
NameId: String;
begin
NameId := dataQuery.FieldByName('element_Id').asstring;
OleStream := dataQuery.CreateBlobStream(dataQuery.fieldbyName(fldName),bmRead);
if OleStream.Size >0 then
begin
OLE.LoadFromStream(OleStream);
Ole.SaveAsDocument(TempPath+NameId+'.doc');//TempPath 为.doc文件的路径
Ole.Close ;
OleStream.free;
end else
begin
Ole.CreateObject('word.document',false);
end;
end;
//========end保存为doc文件========//FileListBox1.Directory := TempPath;
FileLIstbox1.Mask :='*.doc';
//Filelistbox1 用于取“.doc”文件
//========begin合并doc文件========//
TempFileName := extractfilepath(Application.ExeName)+'TempdocFile\Tempdoc.dot';
//tempdoc.dot用于存放合并的主文件
wordapplication1.Connect;
wordapplication1.Documents.Open(TempFileName,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam);WordDocument1.ConnectTo(wordapplication1.Documents.Item(TempFileName));
WordDocument1.Select ;
WordDocument1.Range.Cut ;//清空.dot文件
for FileNameOrder := 0 to FileListBox1.Items.Count -1 do
begin
FromFileName := TempPath + FileListBox1.Items.Strings[FileNameOrder];
wordapplication1.Documents.Open(FromFileName,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam);
WordDocument2.ConnectTo(wordapplication1.Documents.Item(FromFileName));
WordDocument2.Select ;
WordDocument2.Range.Copy;
WordDocument2.Close ;
WordDocument1.Paragraphs.Last.Range.Paste;
end;{for for FileNameOrder := 0 to FileListBox1.Items.Count -1}
Wordapplication1.Visible:=true;//结果显示。
//========end合并doc文件========//
procedure Tmenufrm.Button1Click(Sender: TObject);
var
oe:variant;
begin
oe:=CreateOleObject('word.Application');
oe.visible:=true;
oe.Documents.Add(DocumentType:=wdNewBlankDocument);
oe.ChangeFileOpenDirectory(文件路径);
oe.Selection.InsertFile(FileName:='doc1.doc', Range:='', ConfirmConversions:=False, Link:=False, Attachment:=False);
oe.Selection.InsertFile(FileName:='doc2.doc', Range:='', ConfirmConversions:=False, Link:=False, Attachment:=False);
oe.Selection.InsertFile(FileName:='doc3.doc', Range:='', ConfirmConversions:=False, Link:=False, Attachment:=False);
end;
补充,第一行再补充上word2000或wordxp(视乎你安装DELPHI时的OFFICE选项)
方法二:form中放两个控件wordApplication1、worddocument1.procedure TForm1.Button1Click(Sender: TObject);
begin
wordapplication1.Connect;
wordapplication1.Visible:=true;
wordapplication1.Documents.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam);
worddocument1.ConnectTo(wordapplication1.ActiveDocument);
wordapplication1.ChangeFileOpenDirectory(文件路径);
wordapplication1.Selection.InsertFile(doc1.doc',EmptyParam,EmptyParam,EmptyParam,EmptyParam);
wordapplication1.Selection.InsertFile(doc2.doc',EmptyParam,EmptyParam,EmptyParam,EmptyParam);
wordapplication1.Selection.InsertFile(doc3.doc',EmptyParam,EmptyParam,EmptyParam,EmptyParam);
end;