AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Excel XLSX lesen (VCL) - schnell

Ein Thema von myicq · begonnen am 10. Feb 2017 · letzter Beitrag vom 10. Feb 2017
Antwort Antwort
myicq

Registriert seit: 5. Jan 2016
70 Beiträge
 
Delphi 6 Professional
 
#1

Excel XLSX lesen (VCL) - schnell

  Alt 10. Feb 2017, 14:32
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.
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Excel XLSX lesen (VCL) - schnell

  Alt 10. Feb 2017, 15:10
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
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.164 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Excel XLSX lesen (VCL) - schnell

  Alt 10. Feb 2017, 15:25
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.
Angehängte Dateien
Dateityp: zip SampleDirectExcelRead.zip (1,95 MB, 42x aufgerufen)
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
Headbucket

Registriert seit: 12. Dez 2013
Ort: Dresden
172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

AW: Excel XLSX lesen (VCL) - schnell

  Alt 10. Feb 2017, 15:26
Definiere doch mal "langsam" und "schnell", damit man mal eine Hausnummer hat, an der man sich orientieren kann

Grüße
Headbucket
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.164 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Excel XLSX lesen (VCL) - schnell

  Alt 10. Feb 2017, 15:47
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
Angehängte Dateien
Dateityp: zip Referenz-Excelfile.zip (292,4 KB, 14x aufgerufen)
Dateityp: zip SampleDirectExcelRead.zip (1,95 MB, 19x aufgerufen)
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)

Geändert von juergen (10. Feb 2017 um 19:21 Uhr) Grund: Falsche Anzahl Zeilen genannt (anstelle 300.000 waren es nur 30.000)
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.004 Beiträge
 
Delphi 2009 Professional
 
#6

AW: Excel XLSX lesen (VCL) - schnell

  Alt 10. Feb 2017, 16:09
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.
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.164 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Excel XLSX lesen (VCL) - schnell

  Alt 10. Feb 2017, 19:30
Hallo zusammen,

leider hatte ich mich im Post #5 um de Faktor 10 bei der Anzahl der Zeilen in der Excel-Referenzdatei vertan...
Hier nun eine Exceldatei die tatsächlich 300.000 Zeilen hat mit 10 Spalten. Zeitverhalten: ca. 3,85 Sekunden
Angehängte Dateien
Dateityp: zip Referenz-Excelfile.zip (548,5 KB, 18x aufgerufen)
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:37 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