Soubory XLS, vytvoření, export dat

Top 

Seznam témat:

export datové množiny do formátu XLS

 

Export datové množiny do formátu XLS

Příklad využívá technologie OLE Automation pro vytvoření souboru XLS přímo pomocí aplikace MS Excel. Tato aplikace proto musí být na stanici nainstalována.

 

var

 Excel: Variant;

 WorkBook: Variant;

 WorkSheet: Variant;

 FName: string;

 Qry: TQuery;

 Row,Col: integer;

 WaitBox: TProgress;

begin

 //inicializuj Excel

 try

   Excel := CreateOLEObject('Excel.Application');

 except

   ErrorBox('Na této stanici není instalován MS Excel.');

   Exit;

 end;

 

 //příprav sheet

 WorkBook := Excel.WorkBooks.Add;

 WorkSheet := WorkBook.WorkSheets[1];

 WaitBox := TProgress.CreateSimple('Export do XLS',

   'Probíhá export kurzů. Prosím, čekejte...');

 try

   //otevři dataset a zapiš do XLS všechny řádky a sloupce

   Qry := TQuery.Create(nil);

   try

     Qry.DatabaseName := DefaultDatabaseName;

     Qry.SQL.Add('select mena_id, dne, koef, cinitel');

     Qry.SQL.Add('from dba.gkurzy');

     Qry.SQL.Add('where mena_id=''EUR''');

     Qry.SQL.Add('order by mena_id, dne');

     Qry.Open;

 

     //do prvního řádku v XLS zapiš názvy polí

     for Col := 1 to Qry.FieldCount do

       WorkSheet.Cells(1, Col) := Qry.Fields[Col-1].FieldName;

 

     //do dalších řádků zapiš hodnoty datasetu

     Row := 2;

     while not Qry.Eof do begin

       for Col := 1 to Qry.FieldCount do

         WorkSheet.Cells(Row, Col) := Qry.Fields[Col-1].Value;

     

       Inc(Row);

       Qry.Next;

     end;

   finally

     Qry.Free;

   end;

 finally

   WaitBox.Free;

 end;

 //zeptej se na soubor a ulož sheet

 with TSaveDialog.Create(nil) do

 try

   DefaultExt := 'xls';

   Filter := 'Soubory MS Excel|*.xls';

   if Execute then begin

     FName := FileName;

     WorkBook.SaveAs(FName);

   end;

 finally

   Free;

 end;

 //ukonči Excel

 Excel.Quit;

end.

 

Související témata