Probleme mit fpspreadsheet bzw. spready bei größeren Datenmengen

Rund um die LCL und andere Komponenten
Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Probleme mit fpspreadsheet bzw. spready bei größeren Datenmengen

Beitrag von Winni »

Hallo!

Standard mäßig ist Excel 2010 auf UTF8 eingestellt.
Wenn man aber ein Worksheet öffnet, so steht die Codepage im Header der Datei.
Sagt Microsoft.

https://docs.microsoft.com/en-us/office ... dfrom=MSDN

Und wenn Du einen schnelleren Sortier-Alghorithmus brauchst, musst Du selbst was erfinden.
Quicksort ist bis dato immer noch der Schnellste.

Winni

Helios
Lazarusforum e. V.
Beiträge: 107
Registriert: Mi 29. Jun 2011, 22:36
OS, Lazarus, FPC: Lazarus 2.2.6 Windows 10 64Bit / Lazarus 2.0.12 Debian 11.7 „Bullseye" 64Bit
CPU-Target: 64Bit
Wohnort: Leonberg

Re: Probleme mit fpspreadsheet bzw. spready bei größeren Datenmengen

Beitrag von Helios »

Hallo Winni und wp_xyz,

Danke für die Informationen und das Programm für den direkten Excel Export aus einem Grid.
Entschuldigt meine späte Antwort.
Mit dem Quicksort wäre ich schon zufrieden vermutlich macht das Excel das auch so.
Interessant ist, dass das Excel schnell clientseitig Filtern (Autofilter) und Sortieren kann.
Ich vermute da werden auch irgendwelche Indizes aufgebaut (den Trick würde ich gerne wissen).
In meinem Fall müsste ich die 500.000 Zeilen und ca 7 Spalten mehrfach von der Datenbank (Hadoop/Impala) abfragen (viel Netzwerktransfer) bis die Sortier und Filterkriterien fix sind (bis man weiss was man zum entsprechenden Thema braucht. Alternativ wäre es noch möglich eine lokale Datenbank zu nehmen (Firebird) und darauf Indizierung und Sortierung/Filterung durchzuführen, da schrecke ich noch vor zurück (keine reine Lazarus Lösung)) und letztendlich exportiere ich dann ca. 1-500 Zeilen als Ergebnis.
Das nur als Erklärung warum ich so scharf auf eine Sortier/Filterfunkion bin.
Was macht denn eigentlich das Hiding im FPWorksheet, kann ich da bestimmte Werte analog wie im Excel über den Autofilter ausblenden?
Wäre das Virtual Treeview mit der Grid Ansicht evtl. eine Alternative für diesen speziellen Usecase?
Ich glaube Java und Python haben Libraries zum Sortieren/Indizieren. Gibt es da was pfiffiges in Free Pascal/Lazarus?
Entschuldigt meine vielen Fragen, das Thema beschätfigt mich schon eine ganze Weile und in der Detailtiefe ist es schwer kompetente Gesprächspartner wie hier zu finden. Danke euch allen nochmal!
Einen schönen Restsonntag noch!
Bleibt gesund und Gruß
Helios

Helios
Lazarusforum e. V.
Beiträge: 107
Registriert: Mi 29. Jun 2011, 22:36
OS, Lazarus, FPC: Lazarus 2.2.6 Windows 10 64Bit / Lazarus 2.0.12 Debian 11.7 „Bullseye" 64Bit
CPU-Target: 64Bit
Wohnort: Leonberg

Re: Probleme mit fpspreadsheet bzw. spready bei größeren Datenmengen

Beitrag von Helios »

Hallo wp_xyz,
sorry noch ein Nachtrag zu Deinem Hinweis den ich nicht scharfgestellt hatte aber nun um so mehr. Tatsächlich musste ich die unit1.pas im SortGrid2 Beispiel mit meinen Editor von ANSI auf UTF-8 umstellen, damit die deutschen Umlaute im Grid richtig erscheinen. Jetzt bin ich platt! Solche Seiteneffekte, die sich über das Encoding der Source Code Datei auf das Ausführbare Programm (hier Grid) auswirkt, kannte ich ja noch überhaupt nicht!
Allein dafür hat sich dieser Thread gelohnt.
Danke und Gruß
Helios

wp_xyz
Beiträge: 4889
Registriert: Fr 8. Apr 2011, 09:01

Re: Probleme mit fpspreadsheet bzw. spready bei größeren Datenmengen

Beitrag von wp_xyz »

Helios hat geschrieben:
So 22. Aug 2021, 21:17
In meinem Fall müsste ich die 500.000 Zeilen und ca 7 Spalten mehrfach von der Datenbank (Hadoop/Impala) abfragen (viel Netzwerktransfer) bis die Sortier und Filterkriterien fix sind (bis man weiss was man zum entsprechenden Thema braucht.
Wenn die Daten eh schon auf einem Datenbank-Server liegen, warum lässt du den dann nicht die Sortier- und Filter-Arbeit machen?
Helios hat geschrieben:
So 22. Aug 2021, 21:17
Was macht denn eigentlich das Hiding im FPWorksheet, kann ich da bestimmte Werte analog wie im Excel über den Autofilter ausblenden?
Wie schon gesagt, Filtern ist in FPSpreadsheet nicht implementiert, und AutoFilter schon gar nicht.

Antworten