Ir para conteúdo
Fórum Script Brasil
  • 0

Como Exportar Conteudo De Um Dbgrid Pra Xls


Eder

Pergunta

movido deste tópico: Probleminha Com Dbgrid X Componente Prtgrid

_________________________________________________________________

haaaa..Jonas você conhece uma outra maneira de exportar conteudo de um dbgrid pra xls??

Grato

Editado por Micheus
Tópico desmembrado de outro, com autorização do autor (Eder)
Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

Vai ai uma dica: exportar conteudo de um dbgrid pra xls

procedure TForm1.BitBtn1Click(Sender: TObject);
var FileName : String; 
begin 

if Application.MessageBox(\'Confirma a geração da planilha?\',\'Confirmação\',mb_YesNo) = mrYes then 
begin 
Query1.First; 
begin 
   If SaveXls.Execute then 
       begin 
           With mxNativeExcel1 Do 
               begin 
                    NewFile; 
                    FileName := SaveXls.filename; 
                    AddFont( bitbnt1.Font );  
                    ActiveFont := 0; 
                    Row := 1; 
                    WriteLabel( Row, 1, \'campos\'); 
                    WriteLabel( Row, 2, \'campos\' ); 
                    WriteLabel( Row, 3, \' campos \' ); 
                    WriteLabel( Row, 4, \' campos \' ); 
                    WriteLabel( Row, 5, \' campos \' ); 
                    WriteLabel( Row, 6, \' campos \' ); 
                    WriteLabel( Row, 7, \' campos \' ); 
                    WriteLabel( Row, 8, \' campos \' ); 
                    WriteLabel( Row, 9, \' campos \' ); 
                    WriteLabel( Row, 10, \' campos \' ); 
                    Row := Row + 1; 

                    While not Query1.Eof do // LOOP NA TABELA 
                    begin 
                        WriteLabel( Row, 1, Query1.Campodatabela.AsString); 
                        WriteLabel( Row, 2, Query1.Campodatabela.AsString); 
                        WriteLabel( Row, 3, Query1.Campodatabela.AsString );
                        Query1.Next; 
                        Row := Row + 1; 
                    end; 
             
               CloseFile; 
               SaveToFile; 

               Application.MessageBox(PChar(\'Planilha \' + SaveXls.FileName + \' gerada.\'),\'Aviso\',mb_Ok);

               Query1.First; 

               end; 
          end; 
     end; 
end; 
end;

Se quiser algo mais bodoso entre neste endereço: tem um exemplo muito bom

http://www.activedelphi.com.br/modules.php...r=0&thold=0

Link para o comentário
Compartilhar em outros sites

  • 0
SaveXls.FileName é um componente SaveDialog1 com o nome de SaveXls .. ok ?

R.: beleza..

JOnas....deu erro nesta linha também:

With mxNativeExcel1 Do

que componente é este?? :(

Grato

Editado por Eder
Link para o comentário
Compartilhar em outros sites

  • 0

pessoal..grato a todos...

eu achei legal este exemplo linck que o Jonas já havia postado no inicio do tópico e que o amigo Welson menciona....

http://www.activedelphi.com.br/modules.php...r=0&thold=0

mas ai testando apareceu esta etapa da dica:

ExcelApplication:
Name: Excel

é um componente???

No delphi 4 não achei....

Grato

Editado por Eder
Link para o comentário
Compartilhar em outros sites

  • 0
Esta na paleta Servers do delphi 5 e 7 (acho que do 3 tambem ), o componente ExcelApplication1.

R.: humm...não tem no d4...mas beleza..vou continuar usando o PrtGrid mesmo.

Precisava de algo simples como exporta dados de um dbgrid pra xls, porem o meu D4 não tem mtas opções.

Valeu Grato..

t+

Link para o comentário
Compartilhar em outros sites

  • 0
movido deste tópico: Probleminha Com Dbgrid X Componente Prtgrid

_________________________________________________________________

haaaa..Jonas você conhece uma outra maneira de exportar conteudo de um dbgrid pra xls??

Grato

Olá, acho que isso abaixo pode ajudar, porém tive que enganar os campos data para que colocassem . em vez de / senão os exceis mais novos invertem o dia com o mês.

procedure form.BtnExpExcelClick(Sender: TObject);
var linha, coluna : integer;
var planilha : variant;
var valorcampo, valorcabecalho : string;
begin
// DataM1 é minha form só de banco de dados, separada
  DataM1.qry1.CachedUpdates := true;
  planilha:= CreateoleObject('Excel.Application');
  planilha.WorkBooks.add(1);
  planilha.caption := 'Exportando dados do dbGrid para o Excel';
  planilha.visible := true;

  DataM1.qry1.ApplyUpdates;
  DataM1.qry1.First;

  for linha := 0 to DataM1.qry1.RecordCount - 1 do
    begin
       for coluna := 1 to DataM1.qry1.FieldCount do
       //valorcabecalho:='';
       //valorcabecalho := DataM1.1.Fields[coluna - 1].DisplayLabel;
       //if (valorcabecalho <> 'CAMPO') or (valorcabecalho <> 'CAMPO') THEN
         begin
           valorcampo := DataM1.qry1.Fields[coluna-1].AsString;
           // tratamento para colunas que são data
            if (coluna=14) or (coluna=15) or (coluna=16) then
               planilha.cells[linha + 2,coluna]:= Copy(valorcampo,1,2) + '.' + Copy(valorcampo,4,2)  + '.' + Copy(valorcampo,7,4)
            else
               planilha.cells[linha + 2,coluna]:= valorcampo;
         end;
       DataM1.qry1.Next;
    end;
   // Inserindo cabeçalho da planilha
  planilha.cells[1,1] := 'cabeçalho;
  planilha.columns.Autofit;
end;

Editado por Micheus
Adicionado o delimitador de código [code] [/code]. Lembre-se de utilizá-lo para melhor visualização
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...