Klasse Excel Adapter

CPALEB wird noch weiter komplettiert! 02.02.2009

Zweck

Mit Hilfe der Komponente TAdapterExcel können Daten aus der Datenbank nach Excel gesendet werden.


Dazu wird ein Table Objekt benötigt und jeder Datensatz innerhalb der Table muss manuell durchgelaufen werden, die Daten werden Zeile für Zeile ins Excel exportiert. Nach der Freigabe des TAdapterExcel Objekts im Code bleibt Excel geöffnet, erst beim Schliessen fragt Excel nach, ob man die Datei speichern möchte oder nicht.



Beispiel

Folgendes Beispiel soll die Funktionsweise der TAdapterExcel verdeutlichen.

procedure buttonExcelExportEinheit_OnClick(Sender: Integer); var aExcel: TAdapterExcel; i: integer; aRow: Integer; aLastTitel: String; aSumme: Double; begin; TableExportEinheit.setstringparam('OB_ID', self.getparam('OB_ID')); TableExportEinheit.readData; if TableExportEinheit.recordcount > 0 then TableExportEinheit.First; aExcel := TAdapterExcel.Create; try aRow := 1;

//Flag setzen damit Excel nicht geschlossen wird beim Freigeben der TAdapterExcel Klasse aExcel.CloseOnFree := false; aExcel.Cell'B1'.HorizontalAlign := thaCenter; aExcel.Cell'B1'.Width := 15.5; aExcel.Cell'B1'.WordWrap := true; aExcel.Cell'A1'.Value := 'EH_Nummer'; aExcel.Cell'A1'.Font.Style := fsBold; aExcel.Cell'B1'.Value := 'Top'; aExcel.Cell'B1'.Font.Style := fsBold; aExcel.Cell'C1'.Value := 'Geschoss'; aExcel.Cell'C1'.Font.Style := fsBold;

while not TableExportEinheit.EOF do begin aRow := aRow + 1; aExcel.Cell'A' + inttostr(aRow).Value := TableExportEinheit.FieldByName('EH_NUMMER').AsString; aExcel.Cell'A' + inttostr(aRow).HorizontalAlign := thaRight; aExcel.Cell'B' + inttostr(aRow).Value := TableExportEinheit.FieldByName('EH_TOP').AsString; aExcel.Cell'B' + inttostr(aRow).HorizontalAlign := thaRight; aExcel.Cell'C' + inttostr(aRow).Value := TableExportEinheit.FieldByName('EH_STOCKWERK').AsString; aExcel.Cell'C' + inttostr(aRow).HorizontalAlign := thaRight; TableExportEinheit.Next; end; aExcel.ShowExcel; finally aExcel.Free; end; end;



Excel wird zeilenweise befüllt, dazu geht man mit einem Zähler durch die Datenmenge und spricht die Excel Zellen über den Zähler an. Zum Beispiel erster Datensatz kommt in Zellen A2,B2,C2 - der 5. Datensatz dann in Zellen A6,B6,C6 usw.

Tipps: