So wird das Microsoft Office Draw Format in der Apache POI Dokumentation bezeichnet. Nicht ohne Grund.
Excel ist eine Baustelle, die ich seit ich ViewXLS erstellt habe immer wieder mal besuche.
Letzthin waren die Zeichnungsobjekte dran. Nein nicht die Charts, sondern die Kreise, Pfeile usw.
Das Zeug wird auch bei Microsoft als 'draw' bezeichnet. Die Doku dazu 'MS-ODRAW'. Das O steht für Office.
Nun gibts bei MS kein !Draw Äquivalent, sondern die Grafiken sind einfach Teil des MS-Office Biotops.
So unterscheidet sich das Konzept doch etwas von !Draw.
Basisobjekt sind sog. 'Shapes'. So ein Shape reicht von der einfachen Linie bis zum Smiley.
Es gibt etwa 200 vordefinierte Shapes.
Diese können grob eingeteil werden nach
Die meisten Shapes haben ein Textfeld.
Jeder Shape-Typ hat eine Reihe von vordefinierten Eigenschaften. Mit abgespeichert werden jeweils nur die davon abweichenden Einstellungen. Dazu zählen Dinge wie:
Die Stützpunkte des Pfades können sich nach den Korrekturwerten, die über das Adjust-Handle im UI gesteuert werden, verschieben.
Path: die Pfadbeschreibung.
Guide Formulas: Zwischenwerte, auf die in der Pfadbeschreibung referenziert werden kann.
Adjustment Values: die Default Korrekturwerte
Connector: die Position der Konnektor-Punkte und der Winkel
Text Box Rectangle: die Koordinaten der Textfläche
Handle: die Koordinaten der Anfasser
Limo: Punkt ab diesem ggf Koordinaten verschoben werden, statt skaliert.
Die Koordinaten beziehen sich auf eine Quadrat mit der Seitenlänge 21600. Dieses Quadrat wird auf die aktuelle Größe/Seitenverhältnis der Shape-Box transformiert.
Diese Shape-Box wiederum ist in das Referenzsystem der Applikation eingebettet. In Excel jeder Eckpunkt in Bezug auf die Spalte/Zeile, in Word auf einen Ankerpunkt im Dokument.
Die Punkte können auch außerhalb der Box liegen, wie z.B. bei den Callouts.
Mit den Office-Zeichnungsobjekten stand ich immer etwas auf Kriegsfuß. Erst nachdem ich mich mit diesen Details und dem zugrundeliegenden Konzept beschäftigt habe, hat sich dies etwas verbessert. Denn das MSO-UI erscheint mir dazu ziemlich unlogisch aufgebaut. Darüberhinaus wird das UI von der Applikation bereitgestellt; so musste ich mal in Excel Zeichnungen erstellen, weil die von mir benötigte Funktion von Word aus nicht zugänglich war.