Como salvar planilha gerada no delphi (através do delphi)

02/03/2010

14

Gostaria de saber como salvo automaticamente uma planilha gerada no delphi, e a salvo através do delphi. Qual o comando ou sintaxe que devo utilizar?   Obrigada.  
Responder

Posts

04/03/2010

Alison Bissoli

Primeiro devemos saber em qual formato quer, xls, txt, rtf?
Responder
Olá Simone, Considerando que queira salvar em formato XLS, utilize o procedimento abaixo, onde QRY é uma query, mas pode usar outro componente de dados, como Table por exemplo:     procedure TForm1.Button1Click(Sender: TObject); var Pasta : Variant; // este tipo aceita qualquer tipo de informação, inclusive Objeto OLE
    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.');
Responder

06/03/2010

Edmar Silva

Workbooks.SaveAs( 'nomedoarquivo.xls' );
Responder

08/03/2010

Thiago Santana

Simone com esse artigo que disponibilizei vc irá conseguir salvar a sua planilha gerada no delphi! http://www.devmedia.com.br/articles/viewcomp.asp?comp=16151 Espero ter ajudado... AbraçoO
Responder
Muito bom cara o codigo ai me ajudo pra caramba estou iniciando em Delphi no caso
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
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira