Homepage-Webhilfe Event-Banner

Tabellen

Eine Tabelle kennzeichnet sich in XSL-FO durch das Element table. Jede XSL-FO-Tabelle hat 3 grundlegende Bereiche: den Tabellenkopf (table-header), den Tabellenfuß (table-footer) und den Tabelleninhalt (table-body). Der Tabellenkopf und der Tabellenfuß sind jedoch optional. Innerhalb der Elemente für die einzelnen Tabellenbereiche werden table-row-Elemente untergeordnet, welche eine Tabellenzeile repräsentieren. Diesen Elementen werden wiederum Tabellenzellen (table-cell-Elemente) untergeordnet. Denken Sie daran, dass der Inhalt einer Tabellenzelle nicht direkt untergeordnet werden darf, sondern innerhalb eines block-Elements angegeben werden muss. Um eine Zelle über mehrere Zeilen oder Spalten zu spannen (engl. span), können Sie die Attribute number-rows-spanned und number-columns-spanned verwenden. Bei Bedarf können Sie direkt innerhalb des table-Elements table-column-Elemente unterordnen, um die Definitionen einer Spalte bereits im Voraus zu treffen. Das table-column-Element ist einteilig. Dort können dann z. B. Attribute für den Innen- und Außenabstand sowie für den Rahmen festgelegt werden. Mit dem Attribut column-width kann die Breite der Spalte festgelegt werden. Wird diese Variante nicht verwendet, so können Sie die Breite einer Zelle mit Hilfe des Attributs width festlegen. Die Angabe der Zellenbreite ist nur einmal pro Spalte erforderlich.

XML-Code:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<?xml-stylesheet href="tabellen.xsl" type="text/xsl" ?>

<firma>
    <mitarbeiter>
        <name>Max Mustermann</name>
        <beruf>Geschäftsführer</beruf>
        <durchwahl>10</durchwahl>
    </mitarbeiter>
    <mitarbeiter>
        <name>Maria Musterfrau</name>
        <beruf>Verkäuferin</beruf>
        <durchwahl>20</durchwahl>
    </mitarbeiter>
    <mitarbeiter>
        <name>Peter Müller</name>
        <beruf>Lagerist</beruf>
        <durchwahl>30</durchwahl>
    </mitarbeiter>
</firma>

XSL-Code:

<?xml version="1.0" encoding="UTF-8" ?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <xsl:output method="xml" omit-xml-declaration="no" version="1.0" encoding="UTF-8" indent="yes" />
    
    <xsl:template match="/">
        <fo:root>
            <fo:layout-master-set>
                <fo:simple-page-master master-name="DIN-A4" page-height="297mm" page-width="210mm">
                    <fo:region-body region-name="inhalt" margin="2cm" />
                </fo:simple-page-master>
            </fo:layout-master-set>
            
            <fo:page-sequence master-reference="DIN-A4">
                <fo:flow flow-name="inhalt">
                    <fo:table font-family="Times">
                        <fo:table-column column-width="40%" border-style="solid" border-width="0.25mm" border-left-width="0.5mm" />
                        <fo:table-column column-width="40%" border-style="solid" border-width="0.25mm" />
                        <fo:table-column column-width="20%" border-style="solid" border-width="0.25mm" border-right-width="0.5mm" />
                        <fo:table-header>
                            <fo:table-row background-color="#CCCCCC" text-align="center" font-weight="bold" font-size="18px">
                                <fo:table-cell number-columns-spanned="3">
                                    <fo:block>Mitarbeiterübersicht</fo:block>
                                </fo:table-cell>
                            </fo:table-row>
                            <fo:table-row background-color="#EEEEEE" border-style="solid" border-width="0.25mm" text-align="center" font-weight="bold" font-size="16px">
                                <fo:table-cell>
                                    <fo:block>Name</fo:block>
                                </fo:table-cell>
                                <fo:table-cell>
                                    <fo:block>Beruf</fo:block>
                                </fo:table-cell>
                                <fo:table-cell>
                                    <fo:block>Durchwahl</fo:block>
                                </fo:table-cell>
                            </fo:table-row>
                        </fo:table-header>
                        <fo:table-body>
                            <xsl:apply-templates />
                        </fo:table-body>
                    </fo:table>
                </fo:flow>
            </fo:page-sequence>
        </fo:root>
    </xsl:template>
    
    <xsl:template match="/firma/mitarbeiter">
        <fo:table-row border-style="solid" border-width="0.25mm" font-size="16px">
            <fo:table-cell>
                <fo:block>
                    <xsl:value-of select="name" />
                </fo:block>
            </fo:table-cell>
            <fo:table-cell>
                <fo:block>
                    <xsl:value-of select="beruf" />
                </fo:block>
            </fo:table-cell>
            <fo:table-cell>
                <fo:block>
                    <xsl:value-of select="durchwahl" />
                </fo:block>
            </fo:table-cell>
        </fo:table-row>
    </xsl:template>
</xsl:stylesheet>
VorschauPDF:
Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen OK