我在Delphi中调用Word添加表格后,就不能在表格下面添加别的文字和表格了,因为添加的文字始终显示在表格的第一个单元格中!我想在表格后继续添加文字和表格,请高手帮忙

解决方案 »

  1.   

    不知道你是不是这样写的,我这样写OK的
    var
    wdPar,wdRange:OleVariant;
    //表格
    wdPar:=FWord.ActiveDocument.Paragraphs.Add;
    wdRange:=wdPar.Range;
    wdRange := FWord.ActiveDocument.Content;
    wdRange.Collapse(wdCollapseEnd);
    FDOC.Tables.Add(wdRange,2,5);
    FDOC.Tables.Item(1).Cell(1,1).Range.Text:='    ......         ';
      

  2.   

    wdRange.Collapse(wdCollapseEnd); 
    这句编译有错误,说wdCollapseEnd未定义
      

  3.   

    procedure TMotorReportFrame.Button2Click(Sender: TObject);
    var
      WordApp, NewDoc, WordTable: OLEVariant;
      iRows, iCols, iGridRows, jGridCols: Integer;
      wdRange:OleVariant;
    begin
      try
        WordApp := CreateOleObject('Word.Application');
      except
        // Error...
        Exit;
      end;
      WordApp.Visible := True;
      NewDoc := WordApp.Documents.Add;  iCols := AdvStringGrid2.ColCount;
      iRows := AdvStringGrid2.RowCount;
      WordApp.Selection.Range.InsertAfter(Text:='电机基本信息表');
      WordApp.Selection.Range.InsertParagraphAfter;  WordTable := NewDoc.Tables.Add(WordApp.Selection.Range, iRows, iCols);
      for iGridRows := 1 to iRows do
        for jGridCols := 1 to iCols do
          WordTable.Cell(iGridRows, jGridCols).Range.Text :=
            AdvStringGrid2.Cells[jGridCols - 1, iGridRows - 1];  WordApp.Selection.Range.InsertParagraphAfter;
      iCols := AdvStringGrid1.ColCount;
      iRows := AdvStringGrid1.RowCount;  WordTable := NewDoc.Tables.Add(WordApp.Selection.Range, iRows, iCols);
      for iGridRows := 1 to iRows do
        for jGridCols := 1 to iCols do
          WordTable.Cell(iGridRows, jGridCols).Range.Text :=
            AdvStringGrid1.Cells[jGridCols - 1, iGridRows - 1];  NewDoc.saveas('d:\a.doc');  WordApp := Unassigned;
      NewDoc := Unassigned;
      WordTable := Unassigned;
    end;我是这样写的,希望插入两个表格,麻烦高手指点一下
      

  4.   

    写了个例子你看下,我这里可以的uses comobj,word2000;
    procedure TForm1.Button1Click(Sender: TObject);
    var
      FWord :Variant;
      FDoc :Variant;
      wdPar,wdRange:OleVariant;
    begin
      FWord := CreateOleObject('Word.Application');
      FWord.Visible := True;
      FDOC :=FWord.Documents.Add;
      wdPar:=FWord.ActiveDocument.Paragraphs.Add;
      wdRange:=wdPar.Range;
      wdRange := FWord.ActiveDocument.Content;
      wdRange.Collapse(wdCollapseEnd);
      FDOC.Tables.Add(wdRange,2,5);
      FDOC.Tables.Item(1).Cell(1,1).Range.Text:= '111'  ;
    end;