Fórum Exportar dados de uma ADOQuery para o excel. #213273
11/02/2004
0
Grato a quem puder me ajudar.
Rik3500
Curtir tópico
+ 0Posts
11/02/2004
Rômulo Barros
Gostei + 0
11/02/2004
Rik3500
Gostei + 0
11/02/2004
Rômulo Barros
Va na paleta de componentes ´Servers´ e adicione o seguints components:
1 - ExcelApplication (Representa a aplicação msexcel.exe)
Adicione um botão ao seu formulário e, quando vc clicar nele, os dados serão exportados para o Excel.
Evento OnClickDoBotão: .. Var Cont : Integer; begin Cont := 2; ExcelApplication1.Workbooks.Add(EmptyParam,0); // Cria um novo documento ExcelApplication1.Caption := ´Exportandp para o excel...´; /// Mesma função do caption de um form ExcelApplication1.Visible[0] := True;// Se false, o excel irá rodar em background.... If(Not(Table.Active))Then Table.Active := True; ExcelApplication1.Range[´A1´,´A1´].Value2 := ´Codigo´; // A célula A1 receberá a string "Codigo" ExcelApplication1.Range[´B1´,´B1´].Value2 := ´Nome´;// ... ExcelApplication1.Range[´C1´,´C1´].Value2 := ´Descrição´;// ... ExcelApplication1.Range[´A1´,´C1´].Font.Color := clRed; // As células A1,B1 e C1 terão fonte vermelha ExcelApplication1.Range[´A1´,´C1´].Interior.Color := clBlack; As células A1,B1 e C1 terão preenchimento preto Table.First; While(Not(Table.Eof))do Begin With(ExcelApplication1)Do Begin Range[´A´+IntToStr(Cont),´A´+IntToStr(Cont)].Value2 := Table.FieldByName(´cod´).AsString; Range[´B´+IntToStr(Cont),´B´+IntToStr(Cont)].Value2 := Table.FieldByName(´nome´).AsString; Range[´C´+IntToStr(Cont),´C´+IntToStr(Cont)].Value2 := Table.FieldByName(´ende´).AsString; Table.Next; Cont := Cont + 1; End; End; ExcelApplication1.ActiveWorkbook.SaveCopyAs(´C:\teste.xls´,0); // Salva uma copia do documento em C:\ com o nome de teste.xls end;
[size=18:fd1d60b847][color=red:fd1d60b847]OBS: Não testei o código. Se der errado, avise-me :twisted: :twisted: [/color:fd1d60b847][/size:fd1d60b847]
Gostei + 0
12/02/2004
Rik3500
Grato.
Ricardo.
Gostei + 0
12/02/2004
Rômulo Barros
Gostei + 0
12/02/2004
Henry Lima
Valeu galera...
Gostei + 0
12/02/2004
Rik3500
Grato.
Ricardo.
Gostei + 0
12/02/2004
Lincoln
begin
Screen.Cursor := crSQLWait;
DM.QExportaExcel.Close;
With dm.QExportaExcel do
begin
SQL.Clear;
SQL.Add(´SELECT EQUIPAMENT, PART_NO, QTD´);
SQL.Add(´FROM PECAREC´);
SQL.Add(´WHERE EQUIPAMENT = ´+char(39)+DBLookupComboBox1.Text+char(39));
SQL.Add(´ORDER BY PART_NO´);
ExecSQL;
Open;
if DM.QExportaExcel.RecordCount = 0 then
begin
MessageDlg(´Favor verificar com o CPD, receita não encontrada´,mterror,[mbok],0);
end
else
begin
ExcelExport1.WorksheetName := DM.QExportaExcelEQUIPAMENT.Value;
// ExcelExport1.SaveAs(´c:\temp\´+DM.QExportaExcelEQUIPAMENT.Value+´.xls´,ffXLS);
ExcelExport1.ExportDataset;
ExcelExport1.Disconnect;
end;
end;
MessageDlg(´Processo Concluído.´,mtinformation,[mbok],0);
Screen.Cursor := crDefault;
end;
Gostei + 0
13/02/2004
Bueno
if query.Active=true then //verifica se a query está aberta begin statusbar1.panels[0].text:=´Aguarde... Exportando dados para o Excel...´; screen.cursor := crSQLWait; cursor:=crSQLwait; 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; query.First; try for linha:=0 to query.RecordCount-1 do begin for coluna:=1 to query.FieldCount do // eliminei a coluna 0 da relação do Excel begin valor:= query.Fields[coluna-1].AsString; excel.cells [linha+2,coluna]:=valor; end; query.Next; end; for coluna:=1 to query.FieldCount do // eliminei a coluna 0 da relação do Excel begin valor:= query.Fields[coluna-1].DisplayLabel; excel.cells[1,coluna]:=valor; end; excel.columns.AutoFit; // esta linha é para fazer com que o Excel dimencione as células adequadamente. 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;
Gostei + 0
13/02/2004
Bueno
coluna, linha: integer; excel: variant; valor: string;
Espero ter ajudado
flw!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)