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/)
-   -   Excel XLSX lesen (VCL) - schnell (https://www.delphipraxis.net/191691-excel-xlsx-lesen-vcl-schnell.html)

myicq 10. Feb 2017 14:32

Excel XLSX lesen (VCL) - schnell
 
Ich muss eine Excel-Sheet (XLSX) einlesen, mit bis zu 300.000 Zeilen, in eine Array.

Ich lese zzt mit ADO, was sehr langsam ist.

Es gibt verschiedene zu-kaufen Components. Aber welcher ist, im praxis, schneller ?

Die Formattierung ist egal, ich muss nur die Werte einlesen.

Lemmy 10. Feb 2017 15:10

AW: Excel XLSX lesen (VCL) - schnell
 
Excel als CSV abspeichern und die verarbeiten? Ansonsten habe ich mit OExport gute Erfahrungen gesammelt (http://www.kluug.net/xlsx-ods-delphi.php) wobei ich aber keine so großen Massendaten verarbeitet habe (vielleicht mal 20k Zeilen exportiert)...

Grüße

juergen 10. Feb 2017 15:25

AW: Excel XLSX lesen (VCL) - schnell
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich muss auch relativ oft mit Exceldateien arbeiten. Da habe ich schon einiges probiert.
Meine mit Abstand beste Wahl bisher ist die Axolot-Komponente.
Ob diese deinen Ansprüchen genügt, kannst du mit anhängendem Testprojekt (ohne irgendwelche Fehlerbehandlung!) testen.

Headbucket 10. Feb 2017 15:26

AW: Excel XLSX lesen (VCL) - schnell
 
Definiere doch mal "langsam" und "schnell", damit man mal eine Hausnummer hat, an der man sich orientieren kann :-)

Grüße
Headbucket

juergen 10. Feb 2017 15:47

AW: Excel XLSX lesen (VCL) - schnell
 
Liste der Anhänge anzeigen (Anzahl: 2)
Bezogen auf die Antwort von Headbucket:
Am Besten wäre es eine Referenz-Exceldatei zu haben, so dass hier alle testen können.
Ich habe mal eine Exceldatei angehangen (30.000 Zeilen, 10 Spalten) => ca. 112ms.

Edit: Sorry, Ursprünglich stand hier 300.000 Zeilen. Das hier anhängende Excel-File hat aber nur 30.000 Zeilen. => korrigiert
Siehe auch Post #7

mjustin 10. Feb 2017 16:09

AW: Excel XLSX lesen (VCL) - schnell
 
ADO ist nützlich wenn interaktive Bearbeitung einer Datei gebraucht wird - via TDataset. Schneller ist Excel Zugriff per ActiveX - Objekt. Lesen und schreiben kann man dadurch in Millisekunden.

juergen 10. Feb 2017 19:30

AW: Excel XLSX lesen (VCL) - schnell
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo zusammen,

leider hatte ich mich im Post #5 um de Faktor 10 bei der Anzahl der Zeilen in der Excel-Referenzdatei vertan...:oops:
Hier nun eine Exceldatei die tatsächlich 300.000 Zeilen hat mit 10 Spalten. Zeitverhalten: ca. 3,85 Sekunden


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:07 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