Gerar planilhas do excel através de uma consulta (Query)
Muitas vezes precisamos de vários relatórios que se diferem pelos campos que são apresentados. Nestas ocasiões o melhor é gerar uma planilha no excel onde o usuário pode facilmente exluir as colunas que ele não precisa. Para isto criei um procedimento que recebe como parâmetro o nome de um consulta (Query) e gera uma planilha com os campos e registros da consulta.
Esta é mais uma facilidade do Delphi.
Veja o Código:
procedure TNOMEDOFORMULÁRIO.GerarExcel(Consulta:TQuery);
var
coluna, linha: integer;
excel: variant; valor: string;
begin
try
excel:=CreateOleObject('Excel.Application');
excel.Workbooks.add(1);
except Application.MessageBox ('Versão do Ms-Excel'+
'Incompatível','Erro',MB_OK+MB_ICONEXCLAMATION);
end;
Consulta.First;
try
for linha:=0 to Consulta.RecordCount-1 do
begin
for coluna:=1 to Consulta.FieldCount do
begin
valor:= Consulta.Fields[coluna-1].AsString;
excel.cells [linha+2,coluna]:=valor;
end;
Consulta.Next;
end;
for coluna:=1 to Consulta.FieldCount do
begin
valor:= Consulta.Fields[coluna-1].DisplayLabel;
excel.cells[1,coluna]:=valor;
end;
excel.columns.AutoFit;
excel.visible:=true;
except
Application.MessageBox ('Aconteceu um erro desconhecido durante a conversão'+
'da tabela para o Ms-Excel','Erro',MB_OK+MB_ICONEXCLAMATION);
end;
end;
- Substitua NOMEDOFORMULÁRIO pelo nome do formulário onde você está inserindo este procedimento.
- Declare o procedimento na cláusula type: procedure GerarExcel(Consulta:TQuery);
- Declare a unit ComObj na cláusula uses.
- Para chamar : GerarExcel(NOMEDACONSULTA);