COM - gerando tabelas no word

Top  Previous  Next

Como gerar uma tabela no Word através do Delphi?

Inclua na seção uses: ComObj

 

{ - Coloque um botão no Form;

  - Altere o evento OnClick do botão conforme abaixo: }

 

procedure TForm1.Button1Click(Sender: TObject);

var

  Word: Variant;

begin

  { Abre o Word }

  Word := CreateOleObject('Word.Application');

  try

    { Novo documento }

    Word.Documents.Add;

    try

      { Adiciona tabela de 2 linhas e 3 colunas }

      Word.ActiveDocument.Tables.Add(

        Range := Word.Selection.Range,

        NumRows := 2,

        NumColumns := 3);

      { Escreve na primeira célula }

      Word.Selection.TypeText(Text := 'Linha 1, Coluna 1');

      { Próxima célula }

      Word.Selection.MoveRight(12);

      { Escreve }

      Word.Selection.TypeText(Text := 'Linha 1, Coluna 2');

      Word.Selection.MoveRight(12);

      Word.Selection.TypeText(Text := 'Linha 1, Coluna 3');

      Word.Selection.MoveRight(12);

      Word.Selection.TypeText(Text := 'Linha 2, Coluna 1');

      Word.Selection.MoveRight(12);

      Word.Selection.TypeText(Text := 'Linha 2, Coluna 2');

      Word.Selection.MoveRight(12);

      Word.Selection.TypeText(Text := 'Linha 2, Coluna 3');

      { Auto-Formata }

      Word.Selection.Tables.Item(1).Select{ Seleciona a 1º tabela }

      Word.Selection.Cells.AutoFit; { auto-formata }

      { Imprime 1 cópia }

      Word.ActiveDocument.PrintOut(Copies := 1);

      ShowMessage('Aguarde o término da impressão...');

      { Para salvar... }

      Word.ActiveDocument.SaveAs(FileName := 'c:\Tabela.doc');

    finally

      { Fecha documento }

      Word.ActiveDocument.Close(SaveChanges := 0);

    end;

  finally

    { Fecha o Word }

    Word.Quit;

  end;

end;

 

Observações

Foram usados neste exemplo o Delphi4 e MS-Word97