Buscar

Criar um arquivo csv que pode ser aberto pelo excel, sem precisar de createoleobject

Código

{A CommonTools7 possui um procedimento que é muito útil quando se precisa salvar um resultado de uma Query, de um módulo de memória, etc, em um arquivo CSV que pode ser aberto pelo Excel, SEM precisar de um CreateOleObject. Para isto usei um SaveDialog (Svd1). Chamei a procedure de "Exportar_para_CSV".}
{OBS: É necessário que na USES esteja a: CommonTools7}

implementation

{$R *.dfm}

Procedure Exportar_para_CSV;
  Var
    i : Integer;
    F : TextFile;
    Arquivo : string;
Begin
  Arquivo := ChangeFileExt( Form1.Svd1.FileName, '.CSV' );
  AssignFile( F, Arquivo );
  ReWrite( F );
  // Cabeçalho
  For i := 0 To Pred( Form1.Query1.FieldCount ) Do Begin
    Write( F, Form1.Query1.Fields[ i ].FieldName ) ;
    If ( i < Pred( Form1.Query1.FieldCount ) ) Then
      Write( F, ';' );
  End;
  WriteLn( F );
  While ( Not Form1.Query1.Eof ) Do Begin
    For i := 0 To Pred( Form1.Query1.FieldCount ) Do Begin
      Write( F, Form1.Query1.Fields[ i ].AsString ) ;
      If ( i < Pred( Form1.Query1.FieldCount ) ) Then
        Write( F, ';' );
    End;
    WriteLn( F );
    Form1.Query1.Next;
  End;
   
  Flush( F );
  Close( F );
End;

{Depois basta chamar a Procedure no ponto em que você quiser. No meu caso em um button, testava se um checkbox (chkExportar) estava checado.}

if chkexportar.Checked then
   begin
     Form1.Svd1.Execute;//Para abrir o SaveDialog
     Exportar_para_CSV;
   end;

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Arquivos
Adicionada dia: 05/12/07
Por: André Borba
Visualizada: 15762 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009