Procedimento para Exportar um DataSet ou Query para Excel em Delphi
Simples exemplo que mostra como exportar dados para o Excel.
Importante!
É necessário o Excel estar instalado na máquina onde for
realizar a exportação.
Exemplo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| procedure ExportarToExcel;
var
linha, coluna : integer;
planilha : variant;
valorcampo : string;
begin
planilha:= CreateoleObject('Excel.Application');
planilha.WorkBooks.add(1);
planilha.caption := 'Exportando dados do dbGrid, dataset ou query para o Excel';
planilha.visible := true;
Query1.First;
for linha := 0 to Query1.RecordCount - 1 do
begin
for coluna := 1 to Query1.FieldCount do
begin
valorcampo := Query1.Fields[coluna - 1].AsString;
planilha.cells[linha + 2,coluna] := valorCampo;
end;
Query1.Next;
end;
for coluna := 1 to Query1.FieldCount do
begin
valorcampo := Query1.Fields[coluna - 1].DisplayLabel;
planilha.cells[1,coluna] := valorcampo;
end;
planilha.columns.Autofit;
end; |
procedure ExportarToExcel;
var
linha, coluna : integer;
planilha : variant;
valorcampo : string;
begin
planilha:= CreateoleObject('Excel.Application');
planilha.WorkBooks.add(1);
planilha.caption := 'Exportando dados do dbGrid, dataset ou query para o Excel';
planilha.visible := true;
Query1.First;
for linha := 0 to Query1.RecordCount - 1 do
begin
for coluna := 1 to Query1.FieldCount do
begin
valorcampo := Query1.Fields[coluna - 1].AsString;
planilha.cells[linha + 2,coluna] := valorCampo;
end;
Query1.Next;
end;
for coluna := 1 to Query1.FieldCount do
begin
valorcampo := Query1.Fields[coluna - 1].DisplayLabel;
planilha.cells[1,coluna] := valorcampo;
end;
planilha.columns.Autofit;
end;
Este procedimento é só um exemplo, você pode modifica-lo e melhorar-lo.
Uma sugestão é colocar parâmetros para utilizar ele de forma genérica.
Fonte: https://www.scriptbrasil.com.br/forum/topic/90117-exportar-dados-de-um-dbgrid-para-o-excel/
-
Giovani Da Cruz
-
15.628 views
- 3 comentários
- 21 de fevereiro de 2018
Está gostando do conteúdo? Considere pagar um cafezinho para nossa equipe!
Posts Relacionados - Continue Aprendendo
Valeu pelo help, meu amigo.
Bom saber que a comunidade de programadores segue se ajudando tanto !
E dá-lhe F9 !!!
Boa tarde.
Este procedimento me ajudou muito, nunca tinha exportado dados desta forma. Preciso no entanto incluir a linha referente a quebra do relatório, esta linha fica entre as colunas e os dados da planilha.
Consegui escrever na 2ª linha, porém os mesmos dados da 1ª.
for coluna := 1 to adoQryExcel.FieldCount do
begin
valorCampo := adoQryExcel.Fields[coluna-1].DisplayLabel;
planilha.Cells[2, coluna] := valorCampo;
end;
Quando o campo é string e contém somente números na exportação do delphi para excel, neste código muda o valor por exemplo para 1,23456789012345E+49 que não é o valor original vindo de delphi.