在自己编的程序中怎样直接显示WORD、EXECL文档的内容?有没有这样的控件?(100分)

  • 主题发起人 主题发起人 咸鱼
  • 开始时间 开始时间
Word、excel文档的在delphi3下可通过ole显示,delphi5可能对这些做了增强。
单独的excel文档可以通过delphi带的控件TF1Book来显示,但注意一下版本。
 
给你一段源代码:
在win32面板上, 有一个oleContainer 控件,拖到你的窗体上,
如果你的窗体上需要按钮的话,请将这些按钮放在一个panel 中,并将panel 的
locked 属性为true。 向顶部对齐,
请将oleContainer 放在panel下面,并留出一个地方能让word放工具栏的地方,
否则word的工具栏将看不到。

代码如下:
if opendialog1.execute then

begin

oleContainer1.loadFromFile(opendialog1.filename);
oleContainer1.doverb(ovShow);
end;

如果要保存修改的Word文档,如下执行:
   if savedialog1.execute then

begin
oleContainer1.savetodocument(savedialog1.filename);
end;

你如其要控件,倒不如自巳写上面一段代码好得多。




 
用ole方式时(如上hl-zhw的代码)本机上必须装有word、excel。tf1book则不
需要excel的支持。
 
我试过了,可是显示了一个错误信息: invalid stream format
 
OLE 搞定!
 

对用word等编辑的文档,只能如下用:
if opendialog1.execute then

begin

oleContainer1.CreateObjectFromFile(opendialog1.filename,false);
oleContainer1.doverb(ovShow);
end;
而对于在 oleContainer1.SaveToFile保存的文档只能用LoadFromFile方法
总结一下:
   对于用word,excel等编辑的文档用CreateObjectFromFile方法在ole中调入,用DoVerb(ovShow)显示。
   保存为源文档时用SaveToDocuemnt方法

   对于用SaveToFile保存的对象,不能再被word等编辑,只能通过LoadFromFile方法调入,再用DoVerb(ovShow)显示。

 
在SYSTEM页上选择OLECONTINAR构件,用它的方法就可以(看看帮助)
CreateLinkToFile
CreateObject

CreateObjectFromFile//最好用

 
OLE自动化可以完全控制EXCEL和WORD。
用VARIANT和IDISPATCH使EXCEL和WORD自动化;另外也可以使用DISPINTERFACE和
标准COM接口完成类似任务,建议通过COM来实现,毕竟这是发展趋势。
 
接受答案了.
 
后退
顶部