我现在用的是Server组件里的WordApplication来连接的,但是到WordDocument1.BuiltInDocumentProperties这步就不知道怎么继续下去了。。我的要求就是要取得WORD文档打开后在文件-属性中的所有内容,不知道怎么做?当然如果您认为不要用Server组件,而比如用OLE连接也是没有关系的。
如果分不够可以再给。

解决方案 »

  1.   

    根据你的情况 uses office97 or office2000然后打开...\Demos\Activex\Oleauto\SrvComp\Word的例子,
      

  2.   

    * 设 定Ole 对 象 的 属 性: OlePropertyGet(propname)
    OlePropertySet(propname,value)
    其 中value 是 任 何 可 以 转 换 为Variant 型 的 值
      

  3.   

    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;