Fórum Gerar Arquivo para Excel #148366

21/03/2003

0

Ola

Preciso Gerar um Relatorio em formato xls para o Excel, como Fazer?

Eu uso paradox, comando SQL para filtrar, e um DbGrid para Visualizar.

Agora como Fazer para que o resultado do filtro seja gerado em formato XLS para o Excel.


Tem como?

Valeu A Força

Dart


Dart

Dart

Responder

Posts

21/03/2003

Carlos Alberto

Olá Dart,

Eu estava com a mesma necessidade há poucos dias atrás e o pessoal do Fórum me passou os passos certinhos e não teve erro. Faça uma pesquisa por autor e veja as dicas que me passaram.


Abraço


Carlos Alberto


Responder

Gostei + 0

21/03/2003

Rafaela

eu estava vendo um exemplo disso agora no clubedelphi... Vai em dicas e macetes que lá tem um exemplo pra vc fazer exatamente o q tá querendo........

[/code][/url]


Responder

Gostei + 0

21/03/2003

Anonymous

Caro Amigo , o exemplo abaixo está no site -http://www.clubedelphi.com.br/dicamacete/dicamacete.html

Autor:
Fabrício Desbessel

Na pagina você pode baixar um exemplo junto com executável.

Segue o Código.

procedure TForm1.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;

Antonio (CPD)


Responder

Gostei + 0

21/03/2003

Fabio Colli

{
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
: TODAS AS LINHA COMENTADAS DEVEM SER USADAS QUANDO FOR USAR ESPORTAÇÃO
: PARA O EXCEL2000 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
}

procedure TFrmExporta.SendToExcel( pDataSet : TDataSet );
var
PreviewNoExcel : TExcelApplication;
// RangeExcel : Excel2000.Range;
RangeExcel : Excel97.Range;
I, Row : Integer;
BookMark : TBookMarkStr;
begin
PreviewNoExcel := TExcelApplication.Create(Self);
PreviewNoExcel.Connect;
PreviewNoExcel.Workbooks.Add(Null, 0);
RangeExcel := PreviewNoExcel.ActiveCell;

for I := 0 to pDataSet.Fields.Count - 1 do
begin
RangeExcel.Value := pDataSet.Fields[I].DisplayLabel;
RangeExcel := RangeExcel.Next;
end;

pDataSet.DisableControls;

try
BookMark := pDataSet.Bookmark;
try
pDataSet.First;
Row := 2;

gagProgresso.MaxValue := pDataSet.RecordCount;
while not pDataSet.Eof do
begin
RangeExcel := PreviewNoExcel.Range[´A´ + IntToStr(Row), ´A´ + IntToStr(Row)];

for I := 0 to pDataSet.Fields.Count - 1 do
begin
RangeExcel.Value := pDataSet.Fields[I].AsString;
RangeExcel := RangeExcel.Next;
end;

pDataSet.Next;
Inc(Row);

gagProgresso.Progress := gagProgresso.Progress + 1;
end;
finally
pDataSet.Bookmark := BookMark;
end;
finally
pDataSet.EnableControls;
end;

// RangeExcel := PreviewNoExcel.Range[´A1´, Chr(64 + pDataSet.Fields.Count) + IntToStr(Row - 1)];
RangeExcel.AutoFormat(1, Null, Null, Null, Null, Null, Null);
PreviewNoExcel.Visible[0] := True;
PreviewNoExcel.Disconnect;
PreviewNoExcel.Free;

btnExportar.Enabled := False;
btnAbrir_Arquivos.Enabled := True;
btnAbrir_Arquivos.SetFocus;

gagProgresso.Progress := 0;
end;


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar