打开WORD文件(100分)

  • 主题发起人 主题发起人 liugq
  • 开始时间 开始时间
L

liugq

Unregistered / Unconfirmed
GUEST, unregistred user!
在程序中以只读或其它方式打开WORD文件,恳请各位指教!
 
用open方法
 
var
msword:variant;
begin
msword:=creatoleobject('word.basic');
msword.fileopen('d:/jian/123.doc');
...
 
用olecontainer。
 
你可以用server页的控件 Twordapplication

procedure TForm1.Button1Click(Sender: TObject);
var
Docfilename:olevariant;
begin
ddd:='c:/yourfile.doc';
wordapplication1.Documents.Open(ddd,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam,emptyparam);
wordapplication1.Visible:=true;
end;

 
一般用server页的控件 Twordapplication,TWordDocument即可
步骤是:
1、打开word,用Twordapplication控件,注意判断word是否已经打开;
var Template,NewTemplate,ItemIndex:OleVariant;
程序中:
try
Template := EmptyParam;
NewTemplate := True;
ItemIndex := 1;
try
Wordapplication.Connect;
except
MessageDlg('Word may not be installed', mtError, [mbOk], 0);
Abort;
end;
Wordapplication.Visible := True;
WordApplication.Caption := '打开一个文件';
2、打开文件,用Open注意它有许多参数,含义可参考word帮助,一般我们只用第一个:
wenjian:='d:/wenjian/a1.doc';
wordapplication.Documents.Open( wenjian,emptyparam,emptyparam,
emptyparam,emptyparam,emptyparam,
emptyparam,emptyparam,emptyparam,
emptyparam);
3、编辑文件,用WordDocument控件:
ItemIndex:=1;
WordDocument.ConnectTo(WordApplication.Documents.Item(ItemIndex));
$$:实例参考delphi自带的例子:
在C:/Program Files/Borland/Delphi5/Demos/Activex/Oleauto/SrvComp/Word下。
如还有问题,大家一起讨论!


 
用 OLE

uses
ComObj ;
var
msword:Variant ;
begin
msword := CreateOleObject( 'word.application' ) ;
msword.visible := true ;
msword.Documents.Open( FileName:=要打开的文件名 , ReadOnly:=true ) ;
// ReadOnly 可选。如果此属性为 True,则将文档作为只读文档打开
...
end ;

word 的帮助文件中有Open方法的详尽语法描述

 
我想请教一下,如果机器上没有装word,是否有办法浏览word文挡?
 
learning....
 
TO ZW84611: 当然可以, 如果你能看懂下面的一段文字.
0000043coh: 4d bo 28 25 ff 8a 31 fo 7e f9 od 40 ff 40 0c
0000043doh: 07 f3 28 25 17 40 31 fo 7e f9 od 2f ff 4e 95

 
小弟不懂,还请指教!
 
如果没装Word当然不能以Word的方式浏览了
 
procedure TForm1.Button1Click(Sender:TObject);
var
v:variant;
begin
v:=CreateOleObject('word.basic');
v.appshow;
v.filenew;
end;
 
都那么多了还不够?
 
似乎可以结束了 :)
 
好长时间了 提问者又不表态 那就结束了
 
后退
顶部