Microsoft Excel LogoIch darf in der Firma aktuell bei der Implementierung einer neuen Funktion helfen. Die Funktion die dazu, Daten via COM in ein Excel-File zu exportieren. Eigentlich keine grosse Sache, wenn da nicht die Stolperfallen wären.

Neben vielen kleineren Besonderheit, die wir inzwischen erfolgreich gemeistert haben, existiert auch die Folgende:
Excel kann bis zu 32’768 Zeichen in eine Zelle schreiben – solange nur eine Zelle auf ein Mal angesprochen wird. WIrd ein Bereich von mehreren Excel-Zellen angesprochen, darf jede Zelle noch maximal 911 Zeichen enthalten – sind es mehr, bricht der Export mit einer Fehlermeldung ab.
Kein Problem, man kann jede Zelle einzeln ansprechen und beschreiben, dies dauert leider ungefähr 70x länger (von Delphi aus getestet).

Um nicht zu viel Geschwindigkeit zu verlieren, bleibt uns nichts anderes übrig, als diejenigen Daten in ein zweidimensionales Array zu schreiben, welche weniger als 911 Zeichen haben, und dieses Array Excel zu übergeben. Die restlichen Zellen, welche grössere Datensätze enthalten, müssen inklusive der gewünschten Position zwischengespeichert werden, und in einen zweiten Schritt Zelle für Zelle beschrieben werden. die bedeutet, dass unser Code für das Beschreiben des Zellbereiches statt einer Zeile mindestens 50 Zeilen Code umfassen wird.

Die Beschreibung dieses Bug habe ich bei Microsoft nur im Zusammenhang mit VBA entdeckt..

This article has 1 comments

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.