我想用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