![]() |
Größere Anzahl von Exceldateien auswerten
Ich habe ein Programm, welches alle Exceldateien (gleicher Aufbau) eines Pfades einliest und dann Werte zwischenspeichert.
Derzeit sind das ca. 8000 Dateien und es dauert einige Stunden, bis das Programm durch ist. Hier die Code Schnipsel
Delphi-Quellcode:
Sieht hier jemand Optimierungsmöglichkeiten?
if OpenXlsWorkBook(fName, WSName, WBk, WS) then begin
.... KalkData.Kunde := WS.Cells.Item[arZellBezüge[Kunde, 1], arZellBezüge[Kunde, 2]].Value; .... if WBk <> Nil then begin SaveChanges := Save; WBk.Close(SaveChanges, EmptyParam, EmptyParam, lcidXls); WBk := NIL; end; |
AW: Größere Anzahl von Exceldateien auswerten
schreiben und lesen in Excel über Delphi ist ziemlich langsam ,
ich würde, wenn möglich, die Excel Datei als CSV abspeichern und die CSV verarbeiten mfg Hannes |
AW: Größere Anzahl von Exceldateien auswerten
Eine richtige Datenbank zu verwenden scheitert an den Umständen/Kundenvorgaben?
|
AW: Größere Anzahl von Exceldateien auswerten
Zitat:
Zitat:
Vielleicht merke ich mir intern (in einer DB) das Datum der jeweiligen Exceltabelle. Wenn sich dieses nicht geändert hat, dann brauche ich die Daten ja nicht erneut auswerten und ich kann mir das Laden einer Exceltabelle sparen. |
AW: Größere Anzahl von Exceldateien auswerten
Was genau ist bei dir langsam?
Das Speichern oder das Ändern der Werte in der Excel-Datei? Wenn du viele Werte (in einem Excelbereich) änderst, dann ist evtl. das Arbeiten mit VariantArrays schneller Alternativ gibts ein paar € aus und machst alles native in Delphi: ![]() |
AW: Größere Anzahl von Exceldateien auswerten
Zitat:
Zitat:
Derzeit kopiere ich jede Zelle, wie oben beschrieben. Das sind aber nur 13 Werte. Zitat:
|
AW: Größere Anzahl von Exceldateien auswerten
Aber Du wirst doch nicht jeden Tag alle Dateien einlesen müssen, oder?
Also reicht es doch bestimmt aus, den letzten Zeitpunkt der Auswertung zu speichern und beim nächsten Durchgang nur die dateien zu verarbeuten, die eben nach diesem gemerkten Zeitpunkt erstellt/geändert worden sind. |
AW: Größere Anzahl von Exceldateien auswerten
Zitat:
Ich hatte erst einmal das Programm geschrieben, damit ich überhaupt an die Daten komme und nun habe ich bemerkt, dass es "ewig" dauert. Wie Uwe oben beschrieben hat, kann ich ja auchmal flexcel versuchen. Aber das Merken der das Dateidatums wird wohl die schnellste Lösung sein. |
AW: Größere Anzahl von Exceldateien auswerten
Zitat:
|
AW: Größere Anzahl von Exceldateien auswerten
Flexcel ist um ein Vielfaches schneller als der Zugriff über OLE, besonders beim Schreiben. Man muss allerdings den Code umschreiben.
Wenn es nur ums Einlesen geht sollte das aber nicht aufwendig sein. Einfach mal probieren. Der Code zum Einlesen und zum Verarbeiten ist getrennt? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz