2016-10-14 4 views
1

Ich versuche, sehr große Datenmenge (300.000 Zeilen * 100 Spalten) nach Excel (aus Delphi-Anwendung) und OLE-Ansatz (kombinierte Lösung von DevExpress DX, CX-Suiten und aus eigenem Code) zu exportieren gibt Fehlermeldungen Nicht genügend Speicher ist verfügbar, um diesen Vorgang abzuschließen, Fehler beim Erstellen der Variantenmatrix. Es gibt keine guten und fertigen Komponenten von Drittanbietern für den nativen Export und da habe ich die Idee, eine Zwischendatei zu verwenden: Ich kann Daten in eine Zwischendatei exportieren und dann diese Datei in Excelt öffnen. Aber welches Format eignet sich am besten für solche Aktionen?: dddIn Excel exportieren - Zwischendateiformate?

  • CSV ist die einfachste ein, kann aber Excel das Spaltenformat aus den CSV-Daten wiederherstellen - es ist für uns sehr wichtig ist, dass die betreffenden Währungsdaten als Zahlen und Berechnungen exportiert wird, kann auf sie durchgeführt werden, Diese Datumsdaten werden als Daten exportiert. CSV hat keine dieser Typinformationen.
  • XML scheint vielversprechend zu sein, da die Daten mit Typisierung und Formatierung versehen werden können, aber welches Format von XML benötigt Excel? Wird dieses Format irgendwo beschrieben?
  • DB-Datei scheint vielversprechend zu sein, aber es ist ziemlich alt und ich bin mir nicht sicher, ob es keine Grenzen für die Menge der Daten gibt.

Suche Lösung für Delphi 6.

+5

Mit [XLSReadWriteII] (http://www.axolot.com/xls.htm) können Sie direkt ohne Excel in das XLS-Format lesen/schreiben. –

+0

Vielleicht SQLLite? Aber ich bin nicht sicher, ob es für so eine große Menge von Reihen okay ist. –

+0

@LURD danke für Erwähnung. Ich arbeite seit Jahren nicht mehr mit Excel. Aber schön zu wissen, dass es so eine Bibliothek gibt! –

Antwort

2

würde ich empfehlen, AdoDataSet zu verwenden. Sie können über Adodataset direkt in Excel-Dateien schreiben. Sie müssen nur die korrekte Verbindungszeichenfolge verwenden: connectionstrings. Dies sind alles MS-Komponenten und sollten keine Probleme mit großen Datasets haben.