向大家请教:如何用Delphi控制Word生成表格和插入图片?

解决方案 »

  1.   

    Delphi打开Word,利用Word的功能生成表格,插入图片.
      

  2.   

    procedure TForm1.InsertPicture(Filename:String);
    var
      vWordDocument:Variant;
    begin
      vWordDocument:=OleObject;
      vWordDocument.Application.Selection.InlineShapes.AddPicture(Filename);  
    end;
      

  3.   

    function TForm1.AddTable(iNumRows,iNumColumns:Integer):Integer;
    var
      vWordDocument,vRange,vTable:Variant;
      i,iTableIndex:Integer;
    begin
      try      vWordDocument:=OleObject;
          vWordDocument.Application.Selection.TypeParagraph;      vTable:=vWordDocument.Tables.Add(vWordDocument.Application.Selection.Range, iNumRows, iNumColumns,wdWord9TableBehavior,wdAutoFitFixed);
          vTable.ID:='AddIndex'+IntToStr(vWordDocument.Tables.Count); //±í¸ñÌí¼Ó˳ÐòË÷Òý
          //È¡µ±Ç°±í¸ñÔÚÎĵµ±í¸ñÖеÄË÷Òý
          iTableIndex:=1;
          for i:=1 to vWordDocument.Tables.Count do
            begin
              if vTable.ID=vWordDocument.Tables.Item(i).ID then
                 iTableIndex:=i;
            end;  except  end;
      
      Result:=iTableIndex;end;function TForm1.GetTablesCount:Integer;
    var
      vWordDocument:Variant;
    begin
      vWordDocument:=OleObject;
      Result:=vWordDocument.Tables.Count;
    end;procedure TForm1.AppendRow(TableIndex:Integer);
    var
      vWordDocument:Variant;
    begin
      vWordDocument:=OleObject;
      vWordDocument.Tables.Item(TableIndex).Rows.Add;
    end;procedure TForm1.InsertRow(TableIndex:Integer);
    var
      vWordDocument:Variant;
    begin
      vWordDocument:=OleObject;
      vWordDocument.Application.Selection.InsertRowsAbove(1);
    end;procedure TForm1.DeleteRow(TableIndex:Integer;iRowIndex:Integer);
    var
      vWordDocument:Variant;
    begin
      vWordDocument:=OleObject;
      vWordDocument.Tables.Item(TableIndex).Rows.Item(iRowIndex).Delete;
    end;
    function TForm1.GetTablesRows(TableIndex:Integer):Integer;
    var
      vWordDocument:Variant;
    begin  vWordDocument:=OleObject;
      result:=vWordDocument.Tables.Item(TableIndex).Rows.Count;end;function TForm1.GetTablesCols(TableIndex:Integer):Integer;
    var
      vWordDocument:Variant;
    begin  vWordDocument:=OleObject;
      result:=vWordDocument.Tables.Item(TableIndex).Columns.Count;end;procedure TForm1.SetCells(TableIndex:Integer;iRow,iCol:Integer;Value:String);
    var
      vWordDocument:Variant;
    begin
      vWordDocument:=OleObject;
      vWordDocument.Tables.Item(TableIndex).Cell(iRow,iCol).Range.Text:=Value;
    end;