Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi DataSet nach Excel exportieren (https://www.delphipraxis.net/132590-dataset-nach-excel-exportieren.html)

mjustin 15. Apr 2009 18:17


DataSet nach Excel exportieren
 
Hallo,

da die Jedi Globus Komponenten nicht mehr weiterentwickelt werden, suche ich nach einer möglichst freien Komponente mit der ein DataSet nach Excel exportiert werden kann. (Ich schaue mir die TJvgExportExcel aber mal an, vielleicht ist die noch brauchbar).

Wir haben zwar das ExpressQuantumGrid, aber einfacher wäre eine nichtvisuelle Komponente die man einfach in ein Datenmodul legen (oder dynamisch erzeugen) könnte.

Ich suche auch mal bei Stackoverflow, und melde mich dann falls es dort noch Empfehlungen gibt.

p.s. die Komponente sollte für Delphi 7 bis 2009 einsetzbar sein.

Cheers,

Hansa 15. Apr 2009 19:34

Re: DataSet nach Excel exportieren
 
Übergebe die Daten aus dem Dataset an CSV-Datei. Diese in Excel importieren und fertig. Stichworte : FieldCount, AsString usw.

omata 15. Apr 2009 22:03

Re: DataSet nach Excel exportieren
 
Vielleicht hilft das hier ja weiter.

RWarnecke 15. Apr 2009 22:39

Re: DataSet nach Excel exportieren
 
Dieser Tipp oder dieser Tipp von den Schweizern sollte Dir auch weiterhelfen.

alzaimar 16. Apr 2009 07:13

Re: DataSet nach Excel exportieren
 
Also ich kann mir gut vorstellen, ein TcxGrid zu instantiieren, die Daten dort einzupflegen (am besten mit einer vordefinierten View) und dann nach XLS zu exportieren. So kompliziert ist das doch nicht.

Schnapp Dir ein Datamodule, pack eine GridRepository rauf, definiere dein Layout mit einer 'MyPredefinedView' und dann noch dieser "Dreizeiler", der den Job erledigt. Dann hast Du auch noch ein nettes Layout, das Du ggf. im Programm anpassen kannst.

Delphi-Quellcode:
procedure TMyExportDataModule.ExportToXLS (aDataSource : TDataSource);
Var
  myGrid : TcxGrid;

begin
  myGrid := TcxGrid.Create(nil);
  Try
    MyPredefinedGridView.DataController.DataSource := aDataSource;
    myGrid.Levels.Add.GridView := MyPredefinedGridView;
    ExportGridToExcel('C:\MyFile.XLS',myGrid,true,true,true);
  Finally
    MyPredefinedGridView.DataController.DataSource := Nil;
    myGrid.Free;
  End;
end;
[edit]Sourcecode verbessert (a.k.a 'getestet')[/edit]

mjustin 16. Apr 2009 07:17

Re: DataSet nach Excel exportieren
 
Zitat:

Zitat von omata
Vielleicht hilft das hier ja weiter.

Danke für den Link. Excel ist nicht unbeding installiert, und es sollte auch z.B. in einem Dienst (ohne GUI) laufen, ein DBGrid sollte nicht vorausgesetzt werden.

CSV ist natürlich eine Lösung, aber eventuell geht es ja auch etwas moderner. Kleine Extras wie das Setzen der Spaltenbreiten (anhand der Feldbreiten oder Typen) wäre ja schon elegant.

Cheers,

mjustin 16. Apr 2009 07:21

Re: DataSet nach Excel exportieren
 
Zitat:

Zitat von RWarnecke
Dieser Tipp oder dieser Tipp von den Schweizern sollte Dir auch weiterhelfen.

Vielen Dank für die Links, aber Excel sollte nicht als installiert vorausgesetzt werden.

Ich schaue mal, wie das QuantumGrid das intern macht - vielleicht kann man diesen Weg dann auch ohne ein QuantumGrid benutzen, damit es auch in Serveranwendungen ohne GUI geht.

Cheers,

AWBtz 16. Apr 2009 10:08

Re: DataSet nach Excel exportieren
 
Zitat:

Zitat von mjustin
Vielen Dank für die Links, aber Excel sollte nicht als installiert vorausgesetzt werden.

Schau Dir mal hier die MaxComponents an. Die sind Freeware.

Mit TmxNativeExcel exportiert man als Excel-Datei und mit TmxDataSetExport ganze DataSets. Berechnete Felder eines ClientDataSets werden meines Wissens aber NICHT exportiert.

alzaimar 16. Apr 2009 18:32

Re: DataSet nach Excel exportieren
 
mjustin, bloß weil das TcxGrid eine GUI-Komponente ist, kannst Du doch ein Grid einfach so instantiieren, ohne das es dargestellt wird. Ok, die EXE ist ein wenig größer, aber es funktioniert. Wo steht denn geschrieben, das man die Funktionalität so nicht einsetzen darf? Ich erzeuge so in einem Webserver auch HTML-Tabellen.

nahpets 17. Apr 2009 09:13

Re: DataSet nach Excel exportieren
 
Hallo,

per ADO-Komponenten kannst Du via ODBC-Treiber auch auf Excel zugreifen. Die ODBC-Treiber sind (in der Regel) auch auf Rechnern ohne Excel verfügbar. Damit kannst Du in einem Dienst mit ADO auf Excel zugreifen, wie auf jede beliebige andere Datenbank auch.

GUI-Elemente kannst Du auch in einem Dienst benutzen. Es zwingt Dich doch niemand, diese auch anzuzeigen. Eine meiner ISAPI.Dll's erzeugt zur Laufzeit per TeeChart Diagramme, dazu wird u. a. ein TForm als Parent für's TeeChart benötigt. Funktioniert wunderbar, zu sehen ist davon auf dem Webserver freilich nichts.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz