Olá Galera, segue uma pequena dica para quem precisa exportar um DataSet para o Excel.
Aqui você verá na prática como exportar os dados vindos de um DataSet para uma planilha, armazenando nas células correspondentes os mais variados tipos, como datas, moedas, números, textos e ainda fórmulas. Veja também como inserir novas abas, bem como definir uma apresentação para o seu documento formatando a aparência das suas células.
Curso: Exportando dados para o Excel com Delphi ComObj
procedure TFrmConsultaCliente.GerarXLS(DSPadrao: TDataSet);
Var
Lin, Col : Integer;
xExcel : Variant;
Conteudo : String;
begin
Try
if DSPadrao.RecordCount < 1 then
begin
Application.MessageBox('Nenhum registro a ser exportado','Atenção',MB_OK);
Exit;
end;
Try
xExcel:= CreateoleObject('Excel.Application');
xExcel.WorkBooks.add(1);
xExcel.caption := 'Titulo da Planilha ';
xExcel.visible := False;
DSPadrao.DisableControls;
DSPadrao.First;
for Lin := 0 to DSPadrao.RecordCount - 1 do
begin
for Col := 1 to DSPadrao.FieldCount do
begin
Conteudo := DSPadrao.Fields[Col - 1].AsString;
xExcel.cells[Lin + 2,Col]:= Conteudo;
end;
DSPadrao.Next;
Application.ProcessMessages;
end;
for Col := 1 to DSPadrao.FieldCount do
begin
Conteudo := DSPadrao.Fields[Lin - 1].Name;
xExcel.cells[1,Col] := Conteudo;
xExcel.Range['A1','Z1'].font.bold := true; // Negrito
xExcel.Range['A1','Z1'].Interior.Color := $00D6D6D6; // Cor da Célula
xExcel.Range['A1','Z1'].RowHeight := 25; //Altura da Célula
end;
xExcel.visible := True;
xExcel.columns.Autofit; //Alinhar automaticamete o tamanho da coluna
finally
DSPadrao.EnableControls;
Enabled := True;
end;
Except
on e : Exception do
raise Exception.Create('Erro ao exportar planilha ' +#13+
'================'+#13+#13+
'Menssagem : ' + E.Message +#13+
'Classe : ' + E.ClassName);
end;
end;
Até a próxima.