想在delphi中调用word!(50分)

  • 主题发起人 主题发起人 jsongy
  • 开始时间 开始时间
J

jsongy

Unregistered / Unconfirmed
GUEST, unregistred user!
word文档寸在access数据库中的ole字段中,想把它读出来,然后用word打开,请问有什么比较好的方法吗?
 
可以用DLL来实现~!
 
能详细说说吗?最好能贴点代码看看!谢谢!
 
Stream := TFileStream.Create(aFile, fmOpenReadWrite);
TBlobField(aDS.Fields[0]).SaveToStream(Stream);
FreeAndNil(Stream);
WinExec(Pchar(GetOfficePath + '/WINWORD.EXE ' +
VarToStr(aFile)), SW_SHOW);
 
to caidao:你的意思是不是说需要先将数据库中的内容还原成word文档,文件名就是afile,然后再打开
并且:getofficepath出错!
 
最后一句可以用
ShellExecute(handle,'open',Pchar(VarToStr(aFile)),nil,nil, SW_SHOW);
 
procedure TForm1.Button1Click(Sender: TObject);
var
MemSize: Integer;
Buffer: PChar;
MyFile: TFileStream;
Stream: TBlobStream;
begin
MyFile := TFileStream.Create('c:/temp.tmp', fmCreate);
with Query1 do
begin
Stream := TBlobStream.Create(FieldByName('Doc') as TBlobField, bmRead);
MemSize := Stream.Size;
Inc(MemSize);
{Make room for the buffer's null terminator.}
Buffer := AllocMem(MemSize);
{Allocate the memory.}
try
Stream.Read(Buffer^, MemSize);
MyFile.Write(Buffer^, MemSize);
finally
MyFile.Free;
Stream.Free;
end;
end;
if FileExists('c:/temp.DOC') then
DeleteFile('c:/temp.DOC');
if FileExists('c:/temp.tmp') then
begin
RenameFile('c:/temp.tmp', 'c:/temp.DOC');
Doc_ole.CreateObjectFromFile('c:/temp.DOC', False);
Doc_ole.Run;
end;

浠ヤ笂绋嬪簭涓轰粠鏁版嵁搴撲粠灏哤ORD鏂囨。鍙栧嚭锛屽苟鏀惧湪temp.doc鐨勪复鏃舵枃浠朵笂骞跺湪ToleContainer鏋勪欢涓?樉绀恒
 
?乱码?我再说一遍
以上程序为从数据库从将WORD文档取出,并放在temp.doc的临时文件上并在ToleContainer构件中显示。
在word中显示就用上面兄台的WinExec(Pchar(GetOfficePath + '/WINWORD.EXE ' +VarToStr(aFile)), SW_SHOW)吧。getofficepath指的是office的安装路径吧
 
多人接受答案了。
 
后退
顶部