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

Exportar dados para excel


Benaia

Pergunta

Criei uma tela de consulta onde coloco uma data inicial e um data final, quando clico em um btn é apresentado em um DBGrid os dados relacionados na tabela consultada.

Montei um código para exportar para os dados para uma planilha excel, a dificuldade é que somente exporta a parte vista no BGrid, que no caso apresenta 10 linhas apenas, se na consultar houver por exemplo 100 linhas 90 ficam sem exportar, o código que coloquei na ferramenta é o abaixo:

var

linha, coluna: integer;

planilha: variant;

valorCampo: string;

begin

planilha:= CreateOleObject('Excel.Application');

planilha.Workbooks.add(1);

planilha.Cells.Select;

planilha.Selection.NumberFormat := '@';

planilha.caption:= 'Exportação de dados para o excel';

planilha.visible:= true;

QryPesqData.First;

for linha:= 0 to QryPesqData.RecordCount-1 do

begin

for coluna:= 1 to QryPesqData.FieldCount do

begin

valorCampo:= QryPesqData.Fields[coluna-1].AsString;

planilha.cells[linha+2,coluna]:= valorCampo;

end;

QryPesqData.Next;

end;

for coluna:=1 to QryPesqData.FieldCount do

begin

valorCampo:= QryPesqData.Fields[coluna-1].DisplayLabel;

planilha.cells[1,coluna]:= valorCampo;

end;

planilha.columns.AutoFit;

Tem alguma alteração que eu possa fazer para exportar todos os dados da pesquisa??

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Adapte o código abaixo. Voce pode usar um AdoTable ou um AdoQuery

procedure TFrmFiltroPeriodo.BitBtn2Click(Sender: TObject);

var

dt_ini, dt_fin: String;

pasta : Variant;

Linha : Integer;

Begin

dt_ini:=DateToStr(DateTimePicker1.Date);

dt_fin:=DateToStr(DateTimePicker2.Date);

edit1.Text := dt_ini;

edit2.Text := dt_fin;

begin

ADOStoredProc1.close;

ADOStoredProc1.Parameters.ParamByName('@datai').Value := dt_ini;

ADOStoredProc1.Parameters.ParamByName('@dataf').Value := dt_fin;

begin

inherited;

ADOStoredProc1.Filtered := true;

ADOStoredProc1.open;

ADOStoredProc1.active := true;

Linha :=2;

Pasta := CreateOleObject('Excel.Application');

Pasta.WorkBooks.add(1);

Pasta.Caption := 'Vendas';

Pasta.Visible := False;

Pasta.Cells[1,1] := 'Data';

Pasta.Cells[1,2] := 'Cod. C.';

Pasta.Cells[1,3] := 'Nome do Cliente';

Pasta.Cells[1,4] := 'Cidade';

Pasta.Cells[1,5] := 'UF';

Pasta.Cells[1,6] := 'Nº Vda';

Pasta.Cells[1,7] := 'Descrição do Produto';

Pasta.Cells[1,8] := 'Unidade';

Pasta.Cells[1,9] := 'Qtde';

Pasta.Cells[1,10] := 'Valor';

Pasta.Cells[1,11] := 'Total';

Pasta.Cells[1,12] := 'Condições';

ADOStoredProc1.DisableControls;

try

While not ADOStoredProc1.Eof do

begin

Pasta.Cells[Linha,1]:= ADOStoredProc1dt.Value;

Pasta.Cells[linha,2] := ADOStoredProc1Cliente.Value;

Pasta.Cells[Linha,3] := ADOStoredProc1ClienteNome.Value;

Pasta.Cells[Linha,4] := ADOStoredProc1Cidade.Value;

Pasta.Cells[Linha,5] := ADOStoredProc1UF.Value;

Pasta.Cells[Linha,6] := ADOStoredProc1codvda.Value;

Pasta.Cells[Linha,7] := ADOStoredProc1descricao.Value;

Pasta.Cells[Linha,8] := ADOStoredProc1Unidade.Value;

Pasta.Cells[Linha,9] := ADOStoredProc1qte.Value;

Pasta.Cells[Linha,10] := ADOStoredProc1vr.Value;

Pasta.Cells[Linha,11] := ADOStoredProc1Total.Value;

Pasta.Cells[Linha,12] := ADOStoredProc1Codigotexto.Value;

Linha := Linha + 1;

ADOStoredProc1.Next;

end;

Pasta.Columns.AutoFit;

Pasta.WorkBooks[1].Sheets[1].Protect(DrawingObjects := False, Contents:=False,

Scenarios := true, Password := '1234');

Pasta.Visible := True;

Finally

ADOStoredProc1.EnableControls;

Pasta := Unassigned;

end;

end;

end;

end;

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...