Fórum Arquivos *.xls no Delphi #165278
07/06/2003
0
Alguém sabe como posso trabalhar com um arquivo *.xls???
Estou precisando gerar um relatorio numa planilha.
Desde já agradeço.
Estou precisando gerar um relatorio numa planilha.
Desde já agradeço.
Kiguti
Curtir tópico
+ 0
Responder
Posts
07/06/2003
José Silva
Este exemplo mostra como exportar o conteudo de uma DataSource(TTable ou TQuery) para o Excel, usando Ole Automation.
Comece um novo projeto, ponha uma Tabela(Table1), um DataSource(DataSource)1 e um botão(Button1) na Form1. Ligue o DataSource1 à Table1 e a Table1 à base de dados, escolha o nome da Tabela...etc.
No USES clause ponha a unit ComObj se está usando o Delphi 4 ou superior, ou Oleauto se está usando o Delphi 2, 3.
Clique no Button1 e cole o seguinte código:
procedure TForm1.Button1Click(Sender:TObject);
var
Célula:Variant;
MSExcel:OleVariant;
ExcelBook:OleVariant;
ExcelSheet:OleVariant;
Coluna, Linha:LongInt;
begin
Try
MSExcel:=CreateOleObject(´Excel.Application´);
ExcelBook:=MSExcel.WorkBooks.Add;
ExcelSheet:=ExcelBook.WorkSheets.Add;
Linha:=1;
With Table1 do
begin
first;
While not EOF do
begin
for coluna:=0 to FieldCount-1 do
begin
If Fields[FieldCount-1].visible=true then
begin
Célula:=ExcelSheet.Cells[Linha, Coluna+1];
Célula.Value:=Fields[Coluna].AsString;
end;
end;
Next;
Inc(Linha);
end;
end;
Except
ShowMessage(´Não foi possivel iniciar o Microsoft Excel´);
Exit;
End;
MSExcel.Visible:=True;
End;
Espero ter ajudado em algo.
Comece um novo projeto, ponha uma Tabela(Table1), um DataSource(DataSource)1 e um botão(Button1) na Form1. Ligue o DataSource1 à Table1 e a Table1 à base de dados, escolha o nome da Tabela...etc.
No USES clause ponha a unit ComObj se está usando o Delphi 4 ou superior, ou Oleauto se está usando o Delphi 2, 3.
Clique no Button1 e cole o seguinte código:
procedure TForm1.Button1Click(Sender:TObject);
var
Célula:Variant;
MSExcel:OleVariant;
ExcelBook:OleVariant;
ExcelSheet:OleVariant;
Coluna, Linha:LongInt;
begin
Try
MSExcel:=CreateOleObject(´Excel.Application´);
ExcelBook:=MSExcel.WorkBooks.Add;
ExcelSheet:=ExcelBook.WorkSheets.Add;
Linha:=1;
With Table1 do
begin
first;
While not EOF do
begin
for coluna:=0 to FieldCount-1 do
begin
If Fields[FieldCount-1].visible=true then
begin
Célula:=ExcelSheet.Cells[Linha, Coluna+1];
Célula.Value:=Fields[Coluna].AsString;
end;
end;
Next;
Inc(Linha);
end;
end;
Except
ShowMessage(´Não foi possivel iniciar o Microsoft Excel´);
Exit;
End;
MSExcel.Visible:=True;
End;
Espero ter ajudado em algo.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)