Clique para saber mais...
  Home     Download     Produtos / Cursos     Revista     Vídeo Aulas     Fórum     Contato   Clique aqui para logar | 20 de Julho de 2026
  Login

Codinome
Senha
Salvar informações

 Esqueci minha senha
 Novo Cadastro

  Usuários
52 Usuários Online

  Revista ActiveDelphi
 Assine Já!
 Edições
 Sobre a Revista

  Conteúdo
 Apostilas
 Artigos
 Componentes
 Dicas
 News
 Programas / Exemplos
 Vídeo Aulas

  Serviços
 Active News
 Fórum
 Produtos / Cursos

  Outros
 Colunistas
 Contato
 Top 10

  Publicidade

  [Artigos]  Enviando dados de uma ADOQuery ou ADOTable para o Excel
Publicado por ActiveDelphi : Sexta, Dezembro 17, 2004 - 04:21 GMT-3 (9087 leituras)
Comentários comentar   Enviar esta notícia a um amigo Enviar para um amigo   Versão para Impressão Versão para impressão
Administrador Esta é uma prática muito interessante, pois você pode incluir no seu sistema um botão onde após fazer uma seleção qualquer pode estar enviando os dados para uma planilha no Excel...
Geralmente os funcionários da área administrativa financeira, por exemplo, sempre pedem aos analistas ou programadores gerarem arquivos texto para importar os dados numa planilha Excel, onde eles trabalham os dados de acordo com as suas necessidades.
Neste exemplo vamos utilizar um Form e os seguintes componentes: da paleta ADO vamos utilizar os componentes ADOConnection (pode ser utilizado ou não) uma ADOTable ou uma ADOQuery (no exemplo utilizaremos a ADOTable), não vou entrar em detalhes de conexão que não é o objetivo do artigo, da paleta Servers vamos utilizar o componente ExcelApplication e da paleta Standard um Button. No evento OnClick do componente Button vamos inserir o seguinte código.
 
procedure TForm1.Button1.Click(Sender: TObject);
var
   Planilha    : olevariant;
   Lin, Col     : integer;
begin
    // Cria aplicativo Excel, inicializa parametros vazios, aplicação visível e
    // utiliza pagina 1 e aba 1
    ExcelApplication1 := TExcelApplication.Create(nil);
    ExcelApplication1.Workbooks.Add(EmptyParam,0);
    ExcelApplication1.Visible[0] := True;
    Planilha := ExcelApplication1.Workbooks[1].Worksheets[1];
    // Abre tabela
    ADOTable1.Open;
    // Repetição de cabeçalho o Delphi vai colocar o nome do campo em
    // cada coluna, se for ADOQuery pode dar um apelido para cada campo
    for Col := 1 to ADOTable1.FieldCount do
    begin
         Planilha.Cells[1,Col].Select;
         Planilha.Cells[1,Col].Font.Bold := True;
         Planilha.Cells[1,Col].Value := ADOTable1.Fields[Col-1].DisplayLabel;
    end;
    // Inicializa na segunda linha
    Lin := 2;

    // Repetição onde vai inserir os dados da tabela até que seja final de arquivo
    while not ( ADOTable1.Eof ) do
    begin
        for Col := 1 to ADOTable1.FieldCount do
        begin
            Planilha.Cells[Lin,Col].Select;
            Planilha.Cells[Lin,Col].Value := ADOTable1.Fields[Col-1].AsString;
        end;
        // Adiciona 1 a variável Lin e vai para o próximo registro da tabela
        inc(Lin);
        ADOTable1.Next;
    end;
     // Fecha a ADOTable e libera a aplicação Excel aberta da memória
    ADOTable1.Close;
    ExcelApplication1.Free;               
end;
 
     Um exemplo bem simples de fazer, com calma e imaginação pode ser bem implementado, pode utilizar uma ADOQuery fazendo consultas em várias tabelas por exemplo. Este exemplo pode ser feito utilizando os componentes do DBExpress, Interbase e DBE.


Observação: por: Luiz Marcello Soares do Amaral - lm-amaral@uol.com.br


Comentários Comentários
   Ordem:  
Comentários pertencem aos seus respectivos autores. Não somos responsáveis pelo seus conteúdos.
  Edição 112

Revista ActiveDelphi

  50 Programas Fontes


  Produtos

Conheça Nossos Produtos

Copyright© 2001-2016 – Active Delphi – Todos os direitos reservados