exportar dados para o excel
ola pessoal, como eu faço pra exportar dados consultados no banco para o excel, o cliente pediu para gerar um relatório e exportar o mesmo para o excel, vlw
Etspaz
Curtidas 0
Respostas
Rjun
08/02/2008
Com ADO você pode acessar arquivos do EXCEL como se fossem tabelas de um banco de dados.
GOSTEI 0
Ferreia2
08/02/2008
A forma que estou te enviando é meio Braçal, porém desta forma independe se a maquina que esta rodando a aplicação tem excel ou não.
Gere um arquivo texto com a estrutura abaixo e salve como .xls
WriteLn(Planilha,´<html>´);
WriteLn(Planilha,´<body>´);
WriteLn(Planilha,´´);
WriteLn(Planilha,´´);
WriteLn(Planilha,´<td width=´5¬´>Cód. Estab.</td>´);
WriteLn(Planilha,´<td width=´5¬´>Cód. Loja</td>´);
WriteLn(Planilha,´<td width=´70¬´>Nome da Loja</td>´);
WriteLn(Planilha,´<td width=´5¬´>Tipo Doc.</td>´);
WriteLn(Planilha,´<td width=´5¬´>Valor</td>´);
WriteLn(Planilha,´<td width=´5¬´>Data</td>´);
WriteLn(Planilha,´<td width=´5¬´>Total Pagto</td>´);
WriteLn(Planilha,´´);
WriteLn(Planilha,´´);
WriteLn(Planilha,´<td width=´5¬´>´ + DmPrincipal.Qry_Existe_Estorno.FieldByName(´Cod_estb_corban´).AsString + ´</td>´);
WriteLn(Planilha,´<td width=´5¬´>´ + DmPrincipal.Qry_Existe_Estorno.FieldByName(´Cod_Loja_corban´).AsString + ´</td>´);
WriteLn(Planilha,´<td width=´70¬´>´ + DmPrincipal.Qry_Existe_Estorno.FieldByName(´Dsc_Nome_Fant´).AsString + ´</td>´);
If DmPrincipal.Qry_Existe_Estorno.FieldByName(´Tip_Pagto´).AsString = ´A´ Then
WriteLn(Planilha,´<td width=´5¬´>Arrecadação</td>´);
If DmPrincipal.Qry_Existe_Estorno.FieldByName(´Tip_Pagto´).AsString = ´T´ Then
WriteLn(Planilha,´<td width=´5¬´>Titulo</td>´);
Valor := Formatfloat(´#,,0.00´,(DmPrincipal.Qry_existe_Estorno.FieldByName(´valor´).asfloat));
WriteLn(Planilha,´<td width=´5¬´ align=´right´>´+ Valor + ´</td>´);
WriteLn(Planilha,´<td width=´5¬´>´ + FormatDateTime(´dd/mm/yyyy´,(DmPrincipal.Qry_Existe_Estorno.FieldByName(´Dta_Cntbl_Orig_Trn´).AsDateTime)) + ´</td>´);
WriteLn(Planilha,´<td width=´5¬´>´ + InttoStr(DmPrincipal.Qry_Conta_Pagamento.FieldByName(´Total_Pagamento´).Asinteger) + ´</td>´);
WriteLn(Planilha,´´);
WriteLn(Planilha,´´);
WriteLn(Planilha,´</body´);
WriteLn(Planilha,´</html>´);
Gere um arquivo texto com a estrutura abaixo e salve como .xls
WriteLn(Planilha,´<html>´);
WriteLn(Planilha,´<body>´);
WriteLn(Planilha,´´);
WriteLn(Planilha,´´);
WriteLn(Planilha,´<td width=´5¬´>Cód. Estab.</td>´);
WriteLn(Planilha,´<td width=´5¬´>Cód. Loja</td>´);
WriteLn(Planilha,´<td width=´70¬´>Nome da Loja</td>´);
WriteLn(Planilha,´<td width=´5¬´>Tipo Doc.</td>´);
WriteLn(Planilha,´<td width=´5¬´>Valor</td>´);
WriteLn(Planilha,´<td width=´5¬´>Data</td>´);
WriteLn(Planilha,´<td width=´5¬´>Total Pagto</td>´);
WriteLn(Planilha,´´);
WriteLn(Planilha,´´);
WriteLn(Planilha,´<td width=´5¬´>´ + DmPrincipal.Qry_Existe_Estorno.FieldByName(´Cod_estb_corban´).AsString + ´</td>´);
WriteLn(Planilha,´<td width=´5¬´>´ + DmPrincipal.Qry_Existe_Estorno.FieldByName(´Cod_Loja_corban´).AsString + ´</td>´);
WriteLn(Planilha,´<td width=´70¬´>´ + DmPrincipal.Qry_Existe_Estorno.FieldByName(´Dsc_Nome_Fant´).AsString + ´</td>´);
If DmPrincipal.Qry_Existe_Estorno.FieldByName(´Tip_Pagto´).AsString = ´A´ Then
WriteLn(Planilha,´<td width=´5¬´>Arrecadação</td>´);
If DmPrincipal.Qry_Existe_Estorno.FieldByName(´Tip_Pagto´).AsString = ´T´ Then
WriteLn(Planilha,´<td width=´5¬´>Titulo</td>´);
Valor := Formatfloat(´#,,0.00´,(DmPrincipal.Qry_existe_Estorno.FieldByName(´valor´).asfloat));
WriteLn(Planilha,´<td width=´5¬´ align=´right´>´+ Valor + ´</td>´);
WriteLn(Planilha,´<td width=´5¬´>´ + FormatDateTime(´dd/mm/yyyy´,(DmPrincipal.Qry_Existe_Estorno.FieldByName(´Dta_Cntbl_Orig_Trn´).AsDateTime)) + ´</td>´);
WriteLn(Planilha,´<td width=´5¬´>´ + InttoStr(DmPrincipal.Qry_Conta_Pagamento.FieldByName(´Total_Pagamento´).Asinteger) + ´</td>´);
WriteLn(Planilha,´´);
WriteLn(Planilha,´´);
WriteLn(Planilha,´</body´);
WriteLn(Planilha,´</html>´);
GOSTEI 0
Felipeucc
08/02/2008
Temos video-aulas na clube delphi que ensinam a trabalhar com o excel
https://www.devmedia.com.br/articles/viewcomp.asp?comp=6006
Dê uma olhadinha, a vídeo-aula é boa (tem 3 partes)
https://www.devmedia.com.br/articles/viewcomp.asp?comp=6006
Dê uma olhadinha, a vídeo-aula é boa (tem 3 partes)
GOSTEI 0
Djjunior
08/02/2008
vc também pode salvar com csv, que qualquer aplicativo de ´planilhas´ abrirá e será mais fácil trabalhar.
PS.: csv é um arquivo separado por ; portanto a função seria muito simples tipo e genérica funcionando para qualquer qry:
PS.: csv é um arquivo separado por ; portanto a função seria muito simples tipo e genérica funcionando para qualquer qry:
function ExportToCSV(qry: TQuery; NomeArq: String); var i integer; linha: string; texto: TStringList; begin Texto := TstringList.Create; with qry do begin //Primeiro coloca os Titulos for i := 0 to fieldsCount - 1 do linha := linha + Field[i].DisplayLabel + ´;´ ; Texto.Lines.Add(Linha); //Agora joga os registros while not eof do begin linha := ´´; for i := 0 to fieldsCount - 1 do linha := linha + Field[i].AsString + ´;´ ; Texto.Lines.Add(Linha); next; end; Texto.SaveTofile(NomeArq); end;
GOSTEI 0
Aroldo Zanela
08/02/2008
Colega,
Outra alternativa é utilizar um filtro ou gerador de relatórios com opção de exportação para o Excel. Um opção free é o FortesReport.
Outra alternativa é utilizar um filtro ou gerador de relatórios com opção de exportação para o Excel. Um opção free é o FortesReport.
GOSTEI 0
Asales
08/02/2008
Olá Etspaz,
eu utilizo o component mxExports da www.maxcomponents.net que acho fácil de usar pois eh só selecionar o dataset a ser exportado.
eu utilizo o component mxExports da www.maxcomponents.net que acho fácil de usar pois eh só selecionar o dataset a ser exportado.
GOSTEI 0
Steve_narancic
08/02/2008
Também pode utilizar os componentes da palheta [b:d220eccc76]Servers[/b:d220eccc76].
GOSTEI 0