本文整理自网络,侵删。
Procedure GetWordCellStr;var
WordApp: TWordApplication; WordDoc: TWordDocument; DocInx,FileName,CfCversions,IsReadOnly,AddToRctFiles,PswDocument, PswTemplate,Revert,WPswDocument,WPswTemplate,FormatWord: OleVariant; i,iRow,iCol: Integer; myCell: Cell; myRow: Row;begin Memo.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; FileName := ′d:/test.doc′; IsReadOnly:=true; CfCversions := EmptyParam; AddToRctFiles:= EmptyParam; PswDocument:= EmptyParam; PswTemplate:= EmptyParam; Revert:= EmptyParam; WPswDocument:= EmptyParam; WPswTemplate:= EmptyParam; FormatWord:= EmptyParam; // ===== 打开文件 ===== WordApp.Documents.open(FileName,CfCversions,IsReadOnly,AddToRctFiles, PswDocument,PswTemplate,Revert,WPswDocument,WPswTemplate,FormatWord); // ===== 关联文件 ===== WordDoc.ConnectTo(WordApp.Documents.Item(DocInx));
//方法(1)==> 规则表 For i := 1 To WordDoc.Tables.Count do //第 i 个表 begin //第 iRow 行 For iRow := 1 To WordDoc.Tables.Item(i).Rows.Count do begin //第 iCol列 For icol := 1 To WordDoc.Tables.Item(i).Columns.Count do begin myCell:=WordDoc.Tables.Item(i).Cell(iRow,icol); memo1.Lines.add(myCell.Range.Text); end; end; end; //方法(2)==> 不规则表:只有横向合并时 For i := 1 To WordDoc.Tables.Count do //第 i 个表 begin For iRow := 1 To WordDoc.Tables.Item(i).Rows.Count do begin myRow:=WordDoc.Tables.Item(i).Rows.Item(iRow);//第 iRow 行 For icol := 1 To myRow.Cells.Count do //第 iCol列 begin myCell:= myRow.Cells.Item(iCol) ; memo1.Lines.add(myCell.Range.Text); end; end; end;
//方法(3)==> 不规则:横向、纵向合并时; 任何表格 For i := 1 To WordDoc.Tables.Count do //第 i 个表 begin //第 j 个Cell for j := 1 To WordDoc.Tables.Item(i).Range.Cells.Count do begin myCell := WordDoc.Tables.Item(i).Range.Cells.Item(j); memo1.Lines.add(myCell.Range.Text); end; end;
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;
相关阅读 >>
Delphi xe5、6、7在android或者ios上使用ansistring和ansichar
Delphi createmutex建立互斥对象,并且给互斥对象起一个唯一的名字
Delphi xe 在andriod程序中获取外置sd卡根目录
Delphi windows 编程[1] - 窗体生成的过程一
更多相关阅读请进入《Delphi》频道 >>