Para o exemplo, iremos gerar uma planilha Excel a partir de uma tabela de Produtos fictícia. Primeiramente criei uma conexão para a tabela via dbExpress (1 TSQLQuery da paleta "dbExpress", 1 TDataSetProvider da paleta "Data Access" e 1 TClientDataSet da paleta "Data Access"). Não esqueça de fazer a ligação entre os 3 componentes através das propriedades DataSet e ProviderName. Além disso criei um botão para Gerar a planilha Excel:
Após adicionar os objetos à tela, criaremos uma procedure responsável por gerar de fato o Excel. Na seção public do form, declare o cabeçalho da procedure (que no caso chamei de ExportaExcel):
public
{ Public declarations }
procedure ExportaExcel(DataSet: TDataSet; Arq: string);
Após criar o cabeçalho, digite simultaneamente SHIFT + CTRL + C para criar automaticamente a procedure no fim do form. Após isso, digite o conteúdo da mesma:
procedure TFRelatorioProdutos.ExportaExcel(DataSet: TDataSet;
Arq: string);
var
ExcApp: OleVariant;
i,l: integer;
begin
ExcApp := CreateOleObject('Excel.Application');
ExcApp.Visible := True;
ExcApp.WorkBooks.Add; QryProd.First;
l := 1; //Adicionar titulos
for i := 0 to QryProd.Fields.Count - 1 do
begin
ExcApp.WorkBooks[1].Sheets[1].Cells[l,i + 1] :=
QryProd.Fields[i].DisplayName;
end;
l := 2;
QryProd.First;
while not QryProd.EOF do
begin
for i := 0 to QryProd.Fields.Count - 1 do
ExcApp.WorkBooks[1].Sheets[1].Cells[l,i + 1] :=
QryProd.Fields[i].DisplayText;
QryProd.Next; l := l + 1; end;
ExcApp.WorkBooks[1].SaveAs(Arq);
end;
Após criarmos nossa procedure responsável por gerar de fato o Excel, dê um duplo clique no botão "Gerar Excel" e digite os seguintes comandos para abrir a query e logo em seguida chamar nossa procedure :
QryProd.Close;
ExQryProd.SQL.Clear;
ExQryProd.SQL.Add(' select CODIGO, DESCRICAO, UNIDADE, ' +
' QUANTIDADE, PRECO_VAREJO ' +
' from PRODUTOS ');
ExQryProd.Prepared := True;
QryProd.Open;
try
ExportaExcel(QryProd, '');
Except;
//
end;
Agora basta rodar sua aplicação e fazer o teste prático para criar sua planilha Excel
a partir dos dados contidos na tabela fictícia Produtos.
a partir dos dados contidos na tabela fictícia Produtos.
Conclusões
Notamos neste artigo a facilidade de se gerar planilhas Excel a
partir de querys no Delphi 7. Forte abraço e até o próximo tutorial.
partir de querys no Delphi 7. Forte abraço e até o próximo tutorial.
--