Como salvar planilha gerada no delphi (através do delphi)
02/03/2010
0
Simone
Posts
04/03/2010
Alison Bissoli
04/03/2010
Edmilson Borges
Lin,Col : Integer;
begin
If (Qry.RecordCount>0) then
begin
Lin := 1;
Pasta := CreateOleObject('Excel.Application'); // cria uma aplicação do Excel
Pasta.WorkBooks.Add(1); // adiciona uma pasta do Excel
Pasta.Caption := 'Plan01'; // Título da planilha
Pasta.Workbooks[1].sheets[1].Name:=Qry.Name;
Pasta.Visible := False; // Deixa a planilha invisível
For col:=0 to (Qry.FieldCount-1) do
begin
Pasta.Cells[Lin,Col+1]:=Qry.Fields[col].DisplayLabel; // Aqui será verificado o formato do campo e aplicado a respectiva formatação
Case Qry.Fields[Col].DataType of
ftDate: Pasta.Columns.Columns[Col+1].NumberFormat := 'dd/mm/aaaa';
ftTime: Pasta.Columns.Columns[Col+1].NumberFormat := 'hh:mm:ss';
ftDateTime: Pasta.Columns.Columns[Col+1].NumberFormat := 'dd/mm/aaaa';
ftCurrency: Pasta.Columns.Columns[Col+1].NumberFormat := '#.##0,00';
ftFloat : Pasta.Columns.Columns[Col+1].NumberFormat := '#.##0';
ftBCD : Pasta.Columns.Columns[Col+1].NumberFormat := '#.##0,00';
ftExtended: Pasta.Columns.Columns[Col+1].NumberFormat := '#.##0,00';
end;
end;
Lin:=Lin+1;
Qry.First;
Qry.DisableControls;
Try
While not Qry.Eof do //executa enquanto não for fim da tabela
begin
Try
For col:=0 to (Qry.FieldCount-1) do
Pasta.Cells[Lin,Col+1]:=Qry.Fields[col].value;
Lin:=Lin+1;
Qry.Next;
GgExp.Progress:=GgExp.Progress+1;
Except
End;
Application.ProcessMessages;
end;
if (CBAjuste.Checked) then
Pasta.Columns.AutoFit; // Faz auto ajuste das colunas do Excel
Pasta.WorkBooks[1].Sheets[1].Protect(DrawingObjects:=True, Contents:=True, Scenarios:=True, Password:='1234'); // Coloca Senha de Proteção na Planilha 01
If SaveExcel.Execute then // O componente SaveDialogs está na paleta Dialogs
Pasta.WorkBooks[1].SaveAs(SaveExcel.FileName); // Salva a Planilha (Salvar como)
Pasta.Visible := True; //Deixa a planilha visível
Finally
Qry.EnableControls; // sempre será executada essa linha
if (CBFec.Checked) then
Pasta.quit;
Pasta:=null;
Pasta := Unassigned;
end;
end
else
BipeErro('O Valor pesquisado não foi encontrado na tabela.');
08/03/2010
Thiago Santana
27/03/2012
Henrique Almeida
como eu faria para personalizar a planilha quando exportar , Ex: colocar um fundo nas celulas ou deixar a fonte em negrito no titulo das colunas
Valeuuu
Clique aqui para fazer login e interagir na Comunidade :)