2.2.3 Tabellen

 

Auch häufig in PowerPoint-Präsentationen werden Folien durch Tabellen strukturiert. Um Einfügen einer Tabelle wird bei PresentationML ein „Graphic Frame“ (dt.: Grafik-Rahmen) verwendet.


2.2.3.1    Graphic Frame-Container

Ein Graphic Frame wird mit dem Element erzeugt und ist eine andere Art des Shapes (vgl. 2.2 Shape). Daher kann ihm auch mit dem Element gleichfalls eine Position und eine Größe angegeben werden (vgl. 2.2.1.2 Positions- und Größenangaben). Ebenso wird in ihm in einem Element () nicht sichtbare Eigenschaften zugewiesen, wie eine ID und ein Name. Sichtbare Eigenschaften, wie eine Flächenfüllung oder Rahmeneigenschaften, können ihm nicht zugeordnet werden. Ein Graphic Frame ist daher stets nicht sichtbar und hat nur funktionale Aufgaben. Für den Inhalt des Graphic Frames erhält er das Element mit dem Kindelement . Diese Konstruktion stellt einen Container dar, der theoretisch alle Elemente enthalten kann. Das uri-Attribut des a:graphicData-Elements gibt mit einem URI genauere Angaben über das Inhaltsmodell des Containers an.

 

<p:graphicFrame>
    <p:nvGraphicFramePr>                            (1)
        <p:cNvPr id="3" name="Tabelle 2"/>
        <p:cNvGraphicFramePr/>
        <p:nvPr/>
    </p:nvGraphicFramePr>
    <p:xfrm>                                  (2)
        <a:off x="1524000" y="1397000"/>
        <a:ext cx="1524000" cy="370840"/>
    </p:xfrm>
    <a:graphic>                                (3)
        <a:graphicData uri="http://schemas.openxmlformats.org/         (4)
    drawingml/2006/table">                         
            …                                  (5)
        </a:graphicData>
    </a:graphic>
</p:graphicFrame>
 
1 Enthält die nicht sichtbaren Eigenschaften des Graphic Frames
2 Für die Positions- und Größenangaben
3 Container-Model für den Inhalt des Graphic Frames
4 Das uri-Attribut gibt hier an, dass es sich bei dem Inhalt um eine Tabelle handelt. Denkbar andere Inhaltsmodelle wären Diagramme mit dem URI http://schemas.openxmlformats.org/drawingml/2006/chart oder SmartArt-Objekte mit dem URI http://schemas.openxmlformats.org/drawingml/2006/diagram.
5 Hier wird der entsprechende Inhalt des Graphic Frames eingefügt.

Abbildung Graphic Frame

 

2.2.3.2 Die Tabellenstruktur von DrawingML


Eine der Inhaltsmodelle für den Container wird mit dem URI http://schemas.openxmlformats.org/drawingml/2006/table angegeben. Hierbei handelt es sich – wie schon aus dem URI zu erkennen – um das Tabellenmodell der Sprache DrawingML. Wie die meisten XML-Tabellenmodelle enthält das umschließende Element der Tabelle () für jede Zeile ein Element () und für jede Zelle in einer Zeile enthält das entsprechende Zeilen-Element ein Zellen-Element ().


        <a:tbl>  
            <a:tblGrid>                                (1)
                <a:gridCol w="1024000"/>  
                …                                      (2)
            </a:tblGrid>  
            <a:tr h="370840">                              (3)
                <a:tc>                                (4)
                    …                                      (5)
                </a:tc>  
                …                                      (6)
            </a:tr>  
            …                                        (7)
        </a:tbl>  
 
1 Da es bei einem solchen Tabellenmodell keine Gruppierungselemente für alle Zellen einer Tabellenspalte gibt, wird hier im Element für jede Spalte der Tabelle ein a:gridCol-Element erzeugt. In einem solchen Element wird mit dem w-Attribut die Breite in EMU bestimmt.
2 Hier wird für jede weitere Spalte ein a:gridCol-Element eingefügt. Die Reihenfolge der a:gridCol-Elemente ist dabei entscheidend für die Zuordnung der Spalten. Das erste Element ist dabei für die Spalte 1 zuständig, das zweite für die Spalte 2 usw.
3 Das a:tr-Element erzeugt eine Tabellenzeile. Mit dem h-Attribut wird in EMU die Höhe dieser Zeile angegeben.
4 Mit dem a:tc-Element wird eine Tabellenzelle erzeugt.
5 Hier werden der Inhalt der Tabellenzelle sowie die Formatierungseigenschaften der Zelle eingetragen.
6 Für jede weitere Zelle der Tabellenzeile wird hier ein a:tc-Element eingefügt. Dabei müssen genau so viele a:tc-Elemente vorahnden sein wie Tabellenspalten definiert wurden (2). Die Reihenfolge der Zellen-Elemente ist hier ebenfalls für die Zuordnung der Spalten entscheidend.
7 Für jede weitere Zeile der Tabelle wird hier ein a:tr-Element eingefügt. Auch hier ist die Reihenfolge wieder entscheidend für die Darstellung.

Abbildung Tabellenstruktur von DrawingML

 

Spalten und Zellen überspannende Zellen

Bisher ähnelt dieses Tabellenmodel stark dem uns aus HTML bekannten Model.   Auch bei Spalten und Zeilen überspannenden Zellen gibt es gewissen Ähnlichkeiten. Werden zwei Zellen, die in einer Zeile nebeneinander liegen verbunden, erhält die erste Zelle das Attribut gridSpan mit dem Wert 2. Dieses Attribut ist vergleichbar mit dem HTML-Attribut colspan und gibt an, wie viele Zellen miteinander verbunden werden sollen. Der Inhalt der ersten Zelle wird als Inhalt der resultierenden (verbundenen) Zelle dargestellt. Entscheidender Unterschied zum HTML-Model ist, dass die andere Zelle nicht entfernt wird. Diese überspannte Zelle muss weiterhin mit einem a:tc-Element definiert werden, obwohl sie nicht mehr dargestellt wird. Das Element kann leer sein – kann aber auch Inhalt enthalten, der aber ebenfalls nicht angezeigt wird. So ist sichergestellt, dass jede Tabellenzeile die gleiche Anzahl an Zellen enthält.

Bei Zeilen überspannende Zellen wird gleichfalls verfahren. Dem Zellen-Element wird das Attribut rowSpan zugefügt mit der Anzahl der überspannten Zeilen als Wert und die überspannten Zellen werden definiert aber nicht dargestellt.

 

2.2.3.3 Tabelenzellen


Eine Tabellenzelle ist mit einem Textrahmen (siehe 2.2.2 Textrahmen) zu vergleichen. Auch das a:tc-Element kann einen Text-Bereich durch das Element enthalten. Hier gilt das gleiche Prinzip wie bei dem Textbereich von Textrahmen. Über das Element werden die Eigenschaften der Tabellenzelle übergeben. Auch hier gibt es einige Ähnlichkeiten. Die Flächenfüllung kann auf die gleiche Weise bestimmt werden (vgl. 2.2.1.4 Flächenfüllung). Auch die Rahmeneigenschaften werden ähnlich bestimmt, nur gibt es hier statt nur ein a:ln-Element für jede Seite der Zelle ein Element – also für den rechten Rahmen , für den linken < a:lnL>, für den oberen und für den unteren . Unterschiede gibt es logischerweise bei der geometrischen Form und bei den Größen- und Positionsangaben. Da eine Tabellenzelle immer rechteckig ist und die Größe durch die Spaltengröße und die Zellenhöhe bestimmt wird, können hier keine abweichenden Angaben gemacht werden.


<a:tc>
    <a:txBody>
        <a:bodyPr/>
        <a:p>
            <a:r>
                <a:t>Z1S1</a:t>
            </a:r>
        </a:p>
    </a:txBody>
    <a:tcPr>
        <a:solidFill>
            <a:srgbClr val="F38222"/>
        </a:solidFill>
    </a:tcPr>
</a:tc>
 

 

 

 

<< zurück zu 2.2.2 Textrahmen