Fórum Exportar para excel em células especificas #14531
25/01/2010
0
Andre Freitas
Curtir tópico
+ 0Posts
28/01/2010
Wesley Yamazack
Bom amigo vou fazer um exemplo para você e logo lhe mandarei peço que aguarde um pouco, ok ?
Um abraço
Wesley Y
Gostei + 0
28/01/2010
Andre Freitas
Gostei + 0
29/01/2010
Wesley Yamazack
procedure TForm2.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[Col -1].Name; xExcel.cells[1,Col] := Conteudo;{Aqui eu formato o cabeçalho para mudar cor e colocar em negritoImplemente a sua necessidade de acordo com estes recursos, caso queria colocar em negrito a coluna C1,C2, basta trocar por xExcel.Range['C1','C2'], sacou ?
}
xExcel.Range['A1','D1'].Font.bold := true; // Negrito xExcel.Range['A1','D1'].Interior.Color := $00D6D6D6; // Cor da Célula xExcel.Range['A1','D1'].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;{No evento que você deseja exportar os dados}
procedure TForm2.Button1Click(Sender: TObject); begin GerarXLS(DSServicos.DataSet); end;
Meu amigo espero que isso lhe ajude.
Um abraço
Wesley Y
Gostei + 0
02/02/2010
Wesley Yamazack
Um abraço
Wesley Y
Gostei + 0
08/02/2010
Andre Freitas
Gostei + 0
08/02/2010
Andre Freitas
Gostei + 0
08/02/2010
Wesley Yamazack
Fico no aguardo então.
Um abraço
Wesley Y
Gostei + 0
03/03/2010
Andre Freitas
Gostei + 0
03/03/2010
Wesley Yamazack
Irei analisar o arquivo.
Um Abraço
Wesley Y
Gostei + 0
03/03/2010
Wesley Yamazack
O erro do CreateOleObject, você tem que dar uses em ComObj;
E o outro erro, é que a procedure que te passei, ela pede um componente do tipo TDataSet, mas você não pode passar, cds.dataset, mas sim somente o cds, pois ele já é um TDataSet, sacou ?
Um abraço
Wesley Y
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)