用TWordApplication,TWordDocument来读出Word中的内容,当wa1.Visible :=False; 在工程中不显示当前打开的文档,但关闭了以前打开的WORD文档,现在的问题是怎么可以不关闭以前打的word,不显示本次打开的WORD
附: if not Assigned(wa1) then
begin
wa1:= TWordApplication.Create(nil);
wa1.Connect ;
wa1.Visible := false;
end;
if not Assigned(wd1) then
wd1:= TWordDocument.Create(nil);
filename:=MyTxtPath;
wa1.Caption:='試試我的word'; //標題
//打开Word文档
wd1.ConnectTo(wa1.Documents.Open(filename,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam));
s:=wd1.range.Text ; //取得word文檔內容
應該就可以啦, 建議貼上完整代碼.轉:
下面三个button分别对应打开word,改内容,存盘退出procedure TForm1.Button1Click(Sender: TObject);
var
Filename:OleVariant;
begin
WordApplication1.Connect;
WordApplication1.Visible:=True;
Filename:='c:\1.doc';
WordApplication1.Documents.Open(Filename,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);
WordDocument1.ConnectTo(WordApplication1.ActiveDocument);
end;procedure TForm1.Button2Click(Sender: TObject);
begin
with WordDocument1 do begin
Activate;
While not ADOTable1.Eof do // 将adotable1 里的field1和field2的内容写入worddocument
Range.InsertAfter(ADOTable1['Field1']+';'+ADOTable1['Field2']+'.');
end;
end;procedure TForm1.Button3Click(Sender: TObject);
begin
WordDocument1.SaveAs;
WordDocument1.Close;
WordDocument1.Disconnect;
WordApplication1.Disconnect;
WordApplication1.Quit;
end;
procedure TForm1.Button1Click(Sender: TObject);
var WordApp: TWordApplication;
WordDoc: TWordDocument;
DocInx,oFileName,CfCversions,oReadOnly,AddToRctFiles,PswDocument,
PswTemplate,oRevert,WPswDocument,WPswTemplate,oFormat: OleVariant;
i,iRow,iCol:integer;
myCell:Cell;
myRow:Row;
s:String;
begin
memo1.Lines.Clear ; // ===== 创建对象 =====
if not Assigned(WordApp) then
begin
WordApp:= TWordApplication.Create(nil);
WordApp.Visible := false;
end;
if not Assigned(WordDoc) then
WordDoc:= TWordDocument.Create(nil);
try
DocInx:=1;
oFileName := 'd:\518.Doc';
oReadOnly:=true;
CfCversions := EmptyParam;
AddToRctFiles:= EmptyParam;
PswDocument:= EmptyParam;
PswTemplate:= EmptyParam;
oRevert:= EmptyParam;
WPswDocument:= EmptyParam;
WPswTemplate:= EmptyParam;
// ===== 打开文件 =====
WordApp.Documents.open(oFileName,EmptyParam,oReadOnly,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam);
// ===== 关联文件 =====
WordDoc.ConnectTo(WordApp.Documents.Item(DocInx));
//方法(1): 取整个文本的字符内容,包含表格
s := WordDoc.Range.text;
memo1.Lines.Add(s);
//方法(2): 取 1 -- 4 位的字符 ,包含表格
// myRange:=WordDoc.Range;
// myRange.Start:=0;
//myRange.End_ :=4; finally
if Assigned(WordDoc) then // ===== 关闭文件 =====
begin
WordDoc.Close;
WordDoc.Disconnect;
WordDoc.Destroy;
WordDoc := nil;
end;
if Assigned(WordApp) then // ===== 关闭Word =====
begin
WordApp.Quit;
WordApp.Disconnect;
WordApp.Destroy;
WordApp := nil;
end;
end;
end;
EmptyParam,
oReadOnly,
EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam,
EmptyParam,
oVisible, EmptyParam, EmptyParam, EmptyParam);
所以你在調用Quit之前還要判斷是否有其它Word窗口打開, 如果有只調用WordApp.Disconnect;就可以啦.
[email protected] 哪位老兄给发给饿。谢谢了