见这个代码 是某个网友贴的 function OpenWordDocument(const AFileName: String; AControl: TCustomMemo): Boolean; var NewDoc: Variant; V: OleVariant; begin try try V := CreateOleObject('Word.Application');//建立自动化对象 NewDoc :=V.Documents.Open(AFileName); //打开指定文件 NewDoc.Content.Copy; //拷贝到剪贴板 AControl.Lines.Clear; AControl.PasteFromClipboard; //粘贴 NewDoc.Close; //关闭Word文件 finally V.Quit; //释放自动化对象 end; Result := True; except Result := False; end; end; 可以取得word文件的内容,但是它太慢了,不适合搜索大量文件 有没有快点的方法????(不需要取得word文件的全部内容)只要一部分就可以了
copy的一段代码,你参考一下 var WordApp: TWordApplication; WordDoc: TWordDocument; var DocInx,FileName,CfCversions,oReadOnly,AddToRctFiles,PswDocument, PswTemplate,oRevert,WPswDocument,WPswTemplate,oFormat: OleVariant; begin DocInx:=1; oFileName := InFile; oReadOnly:=true; WordApp:= TWordApplication.Create(nil); WordApp.Visible := false; WordDoc:= TWordDocument.Create(nil); WordApp.Documents.open(FileName,CfCversions,oReadOnly,AddToRctFiles,PswDocument, PswTemplate,oRevert,WPswDocument,WPswTemplate,oFormat); WordDoc.ConnectTo(WordApp.Documents.Item(DocInx)); For i := 1 To WordDoc.Tables.Count do //第 i 个表 begin For iRow := 1 To WordDoc.Tables.Item(i).Rows.Count do for iCol:=1 to WordDoc.Tables.Item(i).Columns.Count do myCell:=WordDoc.Tables.Item(i).Cell(iRow,iCol); //取第 [iRow,iCol] 列 end; if Assigned(WordDoc) then begin WordDoc.Close; WordDoc.Disconnect; WordDoc.Destroy; WordDoc := nil; end; if Assigned(WordApp) then begin WordApp.Quit; WordApp.Disconnect; WordApp.Destroy; WordApp := nil; end;
function OpenWordDocument(const AFileName: String;
AControl: TCustomMemo): Boolean;
var
NewDoc: Variant;
V: OleVariant;
begin
try
try
V := CreateOleObject('Word.Application');//建立自动化对象
NewDoc :=V.Documents.Open(AFileName); //打开指定文件
NewDoc.Content.Copy; //拷贝到剪贴板
AControl.Lines.Clear;
AControl.PasteFromClipboard; //粘贴
NewDoc.Close; //关闭Word文件
finally
V.Quit; //释放自动化对象
end;
Result := True;
except
Result := False;
end;
end;
可以取得word文件的内容,但是它太慢了,不适合搜索大量文件
有没有快点的方法????(不需要取得word文件的全部内容)只要一部分就可以了
var WordApp: TWordApplication; WordDoc: TWordDocument;
var DocInx,FileName,CfCversions,oReadOnly,AddToRctFiles,PswDocument,
PswTemplate,oRevert,WPswDocument,WPswTemplate,oFormat: OleVariant;
begin
DocInx:=1;
oFileName := InFile;
oReadOnly:=true; WordApp:= TWordApplication.Create(nil);
WordApp.Visible := false;
WordDoc:= TWordDocument.Create(nil);
WordApp.Documents.open(FileName,CfCversions,oReadOnly,AddToRctFiles,PswDocument,
PswTemplate,oRevert,WPswDocument,WPswTemplate,oFormat);
WordDoc.ConnectTo(WordApp.Documents.Item(DocInx)); For i := 1 To WordDoc.Tables.Count do //第 i 个表
begin
For iRow := 1 To WordDoc.Tables.Item(i).Rows.Count do
for iCol:=1 to WordDoc.Tables.Item(i).Columns.Count do
myCell:=WordDoc.Tables.Item(i).Cell(iRow,iCol); //取第 [iRow,iCol] 列
end; if Assigned(WordDoc) then
begin
WordDoc.Close;
WordDoc.Disconnect;
WordDoc.Destroy;
WordDoc := nil;
end; if Assigned(WordApp) then
begin
WordApp.Quit;
WordApp.Disconnect;
WordApp.Destroy;
WordApp := nil;
end;
end;
PswTemplate,oRevert,WPswDocument,WPswTemplate,oFormat); 参数不够!是不是跟office版本有关?
我希望是提出文字
用paragrahs可以返回某一段
但还是老问题 速度太慢
我搜索5个文件提取标题用了一分钟。
谁有比较快的方法?