Delphi与Word(三)取得Word文件的数据

Delphi教程 2025-08-07

,

//取得Word文件的数据

PRocedure getWordStr;

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;

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:/test.doc';

oReadOnly:=true;

CfCversions := EmptyParam;

AddToRctFiles:= EmptyParam;

PswDocument:= EmptyParam;

PswTemplate:= EmptyParam;

oRevert:= EmptyParam;

WPswDocument:= EmptyParam;

WPswTemplate:= EmptyParam;

oFormat:= EmptyParam;

// ===== 打开文件 =====

WordApp.Documents.open(oFileName,CfCversions,oReadOnly,AddToRctFiles,

PswDocument,PswTemplate,oRevert,WPswDocument,WPswTemplate,oFormat);

// ===== 关联文件 =====

WordDoc.ConnectTo(WordApp.Documents.Item(DocInx));

//方法(1): 取整个文本的字符内容,包含表格

s:= WordDoc.Range.text;

//方法(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;