我想用Delphi将两个word文档合并成一个。用Delphi连接两个Word文档
在我的数据库中,我有一个表包含一个varbinary(max)包含一个Word文档的表,我想根据条件从该表的某些行创建一个word文档。
我一直在使用流
试图任何想法我怎么能做到这一点?我一直在寻找,但没有找到解决方案。
var
i: Int32;
stream: TFileStream;
Path1: string;
WordApp: TWordApplication;
begin
Path1 := IncludeTrailingPathDelimiter(GetEnvironmentVariable('TEMP')) +
FormatDateTime('yyyymmddhhnnssz', Now) + '.doc';
WordApp := TWordApplication.Create(nil);
stream := TFileStream.Create(Path1, fmCreate);
try
try
with dm do
begin
DataSet.First;
CopyBlobFieldToStream(dm.DataSet,
dm.DataSetBlobField, stream);
ShowMessage(IntToStr(stream.Size));
DataSet.Next;
CopyBlobFieldToStream(dm.DataSet,
dm.DataSetBlobField, stream);
ShowMessage(IntToStr(stream.Size));
CopyBlobFieldToStream(dm.DataSet2,
dm.DataSet2BlobField, stream);
ShowMessage(IntToStr(stream.Size));
end;
finally
stream.Free;
end;
WordApp.Documents.Open(Path1, EmptyParam, False, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
WordApp.Visible := True;
finally
WordApp.Free;
end;
这就是我试过的。
请稍等,但为何使用'with dm',然后将dm.'添加到大多数封闭的字段中?从长远角度来看,清除'with'将会更清洁和更安全。 –
@DavidA它仍然在调试,我已经尝试过各种代码行,这就是为什么是这样的,当我有一个工作解决方案时,我会重构它。 – CiucaS
我认为你不能这样做。您应该单独保存文档,分别使用Delphi打开这些文件并将一个内容复制到另一个。看看这里http://stackoverflow.com/questions/5393368/ole-automation-how-do-i-copy-text-between-word-documents-without-using-the-clip – sddk