Exportação no Delphi
Boa tarde galera,
Alguém pode me ajudar como fazer uma exportação em excel.
Alguém pode me ajudar como fazer uma exportação em excel.
Gustavo Fernandes
Curtidas 0
Respostas
Singular Ti
15/09/2012
explique melhor o que vc quer exportar para o excel?? conteudo de uma DBGrid? resultado de um select (clientdataset)??
Enfim... Explique melhor para podermos lhe ajudar...
Enfim... Explique melhor para podermos lhe ajudar...
GOSTEI 0
Gustavo Fernandes
15/09/2012
Leandro,
é resultado de um select usando uma (Query).
Se puder me ajudar eu agradeceria muito!
é resultado de um select usando uma (Query).
Se puder me ajudar eu agradeceria muito!
GOSTEI 0
Alisson Santos
15/09/2012
Como quer fazer essa exportação.
O que precisa que seja exportado e de qual forma.
Poderia explicar melhor para podermos auxiliar no desenvolvimento.
O que precisa que seja exportado e de qual forma.
Poderia explicar melhor para podermos auxiliar no desenvolvimento.
GOSTEI 0
Romulo Contro
15/09/2012
faz o seguinte... cria uma variavel do tipo Variant
por exemplo:
Excel : Variant;
Excel := CreateOleObject('Excel.Application');
Excel.WorkBooks.Add;
Excel.WorkBooks[1].Sheets.Add;
Excel.Visible := true; (aqui é caso vc quiser mostrar o excel na tela)
Excel.WorkBooks[1].Sheets[1].Cells[numerolinha,numerocoluna] := o que vc quiser aqui...
Excel.WorkBooks[1].SaveAs('aqui coloca o caminho que quiser salvar');
Excel.Visible := false; (aqui se tiver com o visible true, vc pode colocar = false, que ele fica aberto mas some da tela)
//essas 3 linhas de baixo fecha o excel e tira ele da memória
Excel.WorkBooks[1].Close;
Excel.Quit;
Excel := Unassigned;
você pode implementar isso aí dentro de um for, ou de um while, controlando as linhas e colunas com variaveis integer... aí vai do seu talento organizar isso do jeito que ficar melhor.
espero que tenha entendido...
por exemplo:
Excel : Variant;
Excel := CreateOleObject('Excel.Application');
Excel.WorkBooks.Add;
Excel.WorkBooks[1].Sheets.Add;
Excel.Visible := true; (aqui é caso vc quiser mostrar o excel na tela)
Excel.WorkBooks[1].Sheets[1].Cells[numerolinha,numerocoluna] := o que vc quiser aqui...
Excel.WorkBooks[1].SaveAs('aqui coloca o caminho que quiser salvar');
Excel.Visible := false; (aqui se tiver com o visible true, vc pode colocar = false, que ele fica aberto mas some da tela)
//essas 3 linhas de baixo fecha o excel e tira ele da memória
Excel.WorkBooks[1].Close;
Excel.Quit;
Excel := Unassigned;
você pode implementar isso aí dentro de um for, ou de um while, controlando as linhas e colunas com variaveis integer... aí vai do seu talento organizar isso do jeito que ficar melhor.
espero que tenha entendido...
GOSTEI 0
Gustavo Fernandes
15/09/2012
Romulo,
fiquei um pouco confuso com sua explicação. e não deu certo meu caro.
Eu, só quero exporta uma tabela de clientes com mais ou menos 10 campos.
e estou utilizando uma Query para filtrar os dados do campo.
fiquei um pouco confuso com sua explicação. e não deu certo meu caro.
Eu, só quero exporta uma tabela de clientes com mais ou menos 10 campos.
e estou utilizando uma Query para filtrar os dados do campo.
GOSTEI 0
Romulo Contro
15/09/2012
ok, tenta fazer exatamente com esse codigo então:
procedure GerarExcel();
var
Excel : Variant;
i, j, l, c : integer;
begin
inherited;
c := 1;
l := 1;
Excel := CreateOleObject('Excel.Application');
Excel.WorkBooks.Add;
Excel.WorkBooks[1].Sheets.Add;
Query.Open;
Query.First;
for i := 0 to Query.FieldCount-1 do
begin
Excel.WorkBooks[1].Sheets[1].Cells[l,c] := Query.Fields[i].FieldName;
Excel.WorkBooks[1].Sheets[1].Cells[l,c].font.bold := true;
Excel.WorkBooks[1].Sheets[1].Cells[l,c].interior.color := clMoneyGreen;
inc(c);
end;
while not Query.Eof do
begin
c := 0;
inc(l);
for i := 0 to Query.FieldCount-1 do
begin
inc(c);
Excel.WorkBooks[1].Sheets[1].Cells[l,c].NumberFormat := '@';
Excel.WorkBooks[1].Sheets[1].Cells[l,c] := Query.Fields[i].Value;
end;
Query.Next;
end;
Excel.Visible := true;
end;
obs: só troca a Query pelo nome da query que vc criou
procedure GerarExcel();
var
Excel : Variant;
i, j, l, c : integer;
begin
inherited;
c := 1;
l := 1;
Excel := CreateOleObject('Excel.Application');
Excel.WorkBooks.Add;
Excel.WorkBooks[1].Sheets.Add;
Query.Open;
Query.First;
for i := 0 to Query.FieldCount-1 do
begin
Excel.WorkBooks[1].Sheets[1].Cells[l,c] := Query.Fields[i].FieldName;
Excel.WorkBooks[1].Sheets[1].Cells[l,c].font.bold := true;
Excel.WorkBooks[1].Sheets[1].Cells[l,c].interior.color := clMoneyGreen;
inc(c);
end;
while not Query.Eof do
begin
c := 0;
inc(l);
for i := 0 to Query.FieldCount-1 do
begin
inc(c);
Excel.WorkBooks[1].Sheets[1].Cells[l,c].NumberFormat := '@';
Excel.WorkBooks[1].Sheets[1].Cells[l,c] := Query.Fields[i].Value;
end;
Query.Next;
end;
Excel.Visible := true;
end;
obs: só troca a Query pelo nome da query que vc criou
GOSTEI 0
Deivison Melo
15/09/2012
Existem componentes freewares para que possa exportar as informações carregadas no dataset diretamente...
GOSTEI 0
Alisson Santos
15/09/2012
Caro amigo, eu não sei muito bem pois nunca tive que fazer.
nesse link que estou disponibilizando pode sanar sua duvida http://catrinck.wordpress.com/2008/03/10/exportar-os-dados-contidos-na-tela-para-excel-em-delphi/
nesse link que estou disponibilizando pode sanar sua duvida http://catrinck.wordpress.com/2008/03/10/exportar-os-dados-contidos-na-tela-para-excel-em-delphi/
GOSTEI 0
Claudia Nogueira
15/09/2012
Fiz um exemplo de como uso no meu sistema quando preciso exportar alguma informação para o excel.
-->[url]www.cdnweb.com.br/TesteExcel.rar[/url]
Qualquer dúvida, estou a disposição.
-->[url]www.cdnweb.com.br/TesteExcel.rar[/url]
Qualquer dúvida, estou a disposição.
GOSTEI 0
Gustavo Fernandes
15/09/2012
Obrigado pessoal,
com ajuda de vocês não sou ninguém. As dicas foram certeiras.
com ajuda de vocês não sou ninguém. As dicas foram certeiras.
GOSTEI 0