Fórum Gerar Arquivo para Excel #148366
21/03/2003
0
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
Curtir tópico
+ 0Posts
21/03/2003
Carlos Alberto
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
Gostei + 0
21/03/2003
Rafaela
[/code][/url]
Gostei + 0
21/03/2003
Anonymous
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)
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;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)