D� uma olhada nesse meu c�digo e v c t ajuda ae:

unit Uextotais;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, Buttons, StdCtrls, Mask, ToolEdit, Db, IBCustomDataSet, IBQuery,
  Grids, DBGrids, OleServer, Excel97, RXDBCtrl;

type
  TFRMExTotais = class(TForm)
    ExcelWorksheet1: TExcelWorksheet;
    ExcelApplication1: TExcelApplication;
    Panel1: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    SpeedButton1: TSpeedButton;
    Label3: TLabel;
    Label4: TLabel;
    Edit1: TEdit;
    DateEdit1: TDateEdit;
    DateEdit2: TDateEdit;
    BTNIniciar: TBitBtn;
    procedure Titulos;
    procedure SpeedButton1Click(Sender: TObject);
    procedure BTNIniciarClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FRMExTotais: TFRMExTotais;

implementation

uses udata, ubusfor;

{$R *.DFM}

procedure TFRMExTotais.Titulos;
begin
   ExcelWorksheet1.Range['A1','A1'].Value:='N� do Item';
   ExcelWorksheet1.Range['B1','B1'].Value:='Quant. Pedida';
   ExcelWorksheet1.Range['C1','C1'].Value:='Custo Total';
   ExcelWorksheet1.Range['D1','D1'].Value:='Det.';
   ExcelWorksheet1.Range['E1','E1'].Value:='N� da Conta';
   ExcelWorksheet1.Range['F1','F1'].Value:='Uni. Neg.';
   ExcelWorksheet1.Range['G1','G1'].Value:='Cta. Obj.';
   ExcelWorksheet1.Range['H1','H1'].Value:='ID Ativo';
end;

procedure TFRMExTotais.SpeedButton1Click(Sender: TObject);
begin
   Fbusfor.showmodal;
   Edit1.Text:=dmcf.qemp1EMPCOD.AsString;
end;

procedure TFRMExTotais.BTNIniciarClick(Sender: TObject);
var lcid,linha:integer;
    WkBk:_Workbook;
begin
   begin
      dmcf.IBQExTotais.Close;
      dmcf.IBQExTotais.SQL.Clear;
      dmcf.IBQExTotais.SQL.Add('select iteijd,sum(conqtd) as 
quantidade,sum(convlu*conqtd) as valor, veiune,itegru,veiida as ID_ATIVO 
from consumo,item,veiculo');
      dmcf.IBQExTotais.SQL.Add('where conite=itecod and conplc=veiplc and 
conemp=:posto and condte>=:dtini and condte<=:dtfin');
      dmcf.IBQExTotais.SQL.Add('group by 
conite,conplc,itegru,itecod,iteijd,veiida,veiune');
      dmcf.IBQExTotais.Params[0].AsString:=Edit1.Text;
      dmcf.IBQExTotais.Params[1].AsDate:=DateEdit1.Date;
      dmcf.IBQExTotais.Params[2].AsDate:=DateEdit2.Date;
      dmcf.IBQExTotais.Open;

      if dmcf.IBQExTotais.RecordCount<>0 then
      begin
         lcid := GetUserDefaultLCID;
         ExcelApplication1.Visible[lcid] := true;
         WkBk:=ExcelApplication1.Workbooks.Add(EmptyParam, lcid);
         ExcelWorksheet1.ConnectTo(WkBk.Worksheets[1] as _Worksheet);
         ExcelWorksheet1.Activate(LCID);
         ExcelApplication1.ScreenUpdating[lcid]:=true;
         ExcelWorksheet1.Name := 'Relat�rios via Excel';

         Titulos;
         linha:=2;
         dmcf.IBQExTotais.First;
         while dmcf.IBQExTotais.Eof=false do
         begin
            
ExcelWorksheet1.Range['A'+IntToStr(linha),'A'+IntToStr(linha)].Value:=dmcf.IBQExTotaisITEIJD.AsString;
            
ExcelWorksheet1.Range['B'+IntToStr(linha),'B'+IntToStr(linha)].Value:=dmcf.IBQExTotaisQUANTIDADE.AsFloat;
            
ExcelWorksheet1.Range['C'+IntToStr(linha),'C'+IntToStr(linha)].Value:=dmcf.IBQExTotaisVALOR.AsFloat;
            
ExcelWorksheet1.Range['D'+IntToStr(linha),'D'+IntToStr(linha)].Value:=dmcf.IBQExTotaisID_ATIVO.AsString;
            
ExcelWorksheet1.Range['E'+IntToStr(linha),'E'+IntToStr(linha)].Value:=dmcf.IBQExTotaisVEIUNE.AsString+'.'+dmcf.IBQExTotaisITEGRU.AsString+'.'+dmcf.IBQExTotaisID_ATIVO.AsString;
            
ExcelWorksheet1.Range['F'+IntToStr(linha),'F'+IntToStr(linha)].Value:=dmcf.IBQExTotaisVEIUNE.AsString;
            
ExcelWorksheet1.Range['G'+IntToStr(linha),'G'+IntToStr(linha)].Value:=dmcf.IBQExTotaisITEGRU.AsString;
            
ExcelWorksheet1.Range['H'+IntToStr(linha),'H'+IntToStr(linha)].Value:=dmcf.IBQExTotaisID_ATIVO.AsString;
            dmcf.IBQExTotais.Next;
            linha:=linha+1;
         end;
         Edit1.Clear;
         DateEdit1.Clear;
         DateEdit2.Clear;
      end
         else
             MessageDlg('Nenhum registro 
encontrado',mtInformation,[mbok],0);
   end;
end;

end.



----- Original Message ----- 
From: "Carlos Alberto" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, September 14, 2004 10:43 PM
Subject: [delphi-br] Exportar para Excel





Estou querendo exportar dados de um DBGrid para excel e estudando a 
exporta�� de dados a Excel escrevi este procedimento porem parece que o 
mesmo est� imcompleto ou com erro pois quando executo ele pela primeira fez 
ele funciona por�m na segunda vez ele tranca na linha 
"Planilha.SaveAs('Teste.xls');" dando a seguinte mensagem "N�o � poss�vel 
acessar " 'Teste.xls' ".
Ap�s fechar o programa e indo ao diret�rio onde foi gravado pela primeira 
vez e tento apagar o Windos diz que o arquivo est� sendo utilizado pelo 
Excel. Alguma dica


Uses ComObj

procedure TForm1.Button1Click(Sender: TObject);
var
   Excel, Planilha : OleVariant;
begin
   try
      Excel:=CreateOleObject('Excel.Application');
   except
      ShowMessage('O programa Excel n�o pode iniciar');
      exit;
   end;
   Excel.WorkBooks.Add;
   Planilha := Excel.WorkBooks[1].Sheets[1];
   Planilha.Cells.Item[1,1] := 'C�digo';
   Planilha.Cells.Item[1,2] := 'Descri��o';
   Planilha.SaveAs('Teste.xls');
   Planilha.Close;
end;


[As partes desta mensagem que n�o continham texto foram removidas]



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]

Links do Yahoo! Grupos








-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que voc� faz do Yahoo! Grupos est� sujeito aos:
    http://br.yahoo.com/info/utos.html

 

Responder a