Freigeben über


Arbeiten mit SpreadsheetML-Tabellen

In diesem Thema wird die Open XML SDK-Klasse Table und ihre Beziehung zum SpreadsheetML-Schema des Open XML-Dateiformats erläutert. Weitere Informationen zur Gesamtstruktur der Teile und Elemente eines SpreadsheetML-Dokuments finden Sie unter Struktur eines SpreadsheetML-Dokuments (Open XML SDK).

Tabellen in SpreadsheetML

Die folgenden Informationen aus der SPEZIFIKATION ISO/IEC 29500 stellen das table Element (<table/>) vor.

In Tabellen können Listen von Informationen auf einem Arbeitsblatt organisiert und strukturiert werden. Tabellen verfügen über eindeutig bezeichnete Spalten, Zeilen und Datenbereiche. Dadurch erleichtern Tabellen den Benutzern das Sortieren, Analysieren, Formatieren, Verwalten, Hinzufügen und Löschen von Informationen.

Wenn ein Datenbereich zu einer Tabelle erklärt wird, werden Benutzer durch besondere Verhaltensweisen der Tabelle bei der Ausführung nützlicher Aktionen unterstützt. [Beispiel: Wenn der Benutzer weitere Daten in die Zeile über dem Ende der Tabelle eingibt, kann die Tabelle erweitert werden, und die Daten werden automatisch dem Datenbereich der Tabelle hinzugefügt. Entsprechend muss zum Hinzufügen einer Spalte einfach eine neue Spaltenüberschrift rechts oder links von den aktuellen Spaltenüberschriften eingegeben werden. Filter- und Sortierfunktionen können dem Benutzer automatisch über die Dropdownpfeile zur Verfügung gestellt werden. Es können spezielle berechnete Spalten erstellt werden, in denen Daten in der Tabelle zusammengefasst oder berechnet werden. Diese Spalten können entsprechend der Größe der Tabelle erweitert und verkleinert werden, wobei die korrekten Formelbezüge erhalten bleiben. Ende des Beispiels]

Tabellen können aus bereits im Arbeitsblatt vorhandenen Daten erstellt werden, aus einer externen Datenabfrage oder durch Zuordnen einer Auflistung wiederholter XML-Elemente zu einem Arbeitsblattbereich.

In der Blatt-XML werden die numerischen und textbasierten Daten gespeichert. In der Tabellen-XML werden die verschiedenen Attribute für das jeweilige Tabellenobjekt verzeichnet.

Eine SpreadsheetML-Tabelle ist ein logisches Konstrukt, das angibt, dass ein Datenbereich zu einem einzelnen Dataset gehört. SpreadsheetML verwendet bereits ein tabellenähnliches Modell zum Angeben von Werten in Zeilen und Spalten, aber Sie können auch eine Teilmenge des Blatts als bezeichnen table und ihr bestimmte Eigenschaften zuweisen, die für die Analyse nützlich sind. Mit einer Tabelle in SpreadsheetML können Sie Daten auf neue Weise analysieren, z. B. durch Filtern, Formatieren und Binden von Daten.

Wie andere Konstrukte in SpreadsheetML wird eine Tabelle eines Arbeitsblatts in einem separaten Teil des Pakets gespeichert. Der Tabellenteil enthält keine Tabellendaten. Die Daten werden in den Arbeitsblattzellen verwaltet. Weitere Informationen zu daten, die im Arbeitsblatt gespeichert sind, finden Sie unter Arbeiten mit Blättern.

In der folgenden Tabelle sind die allgemeinen Open XML SDK-Klassen aufgeführt, die beim Arbeiten mit der Table -Klasse verwendet werden.

SpreadsheetML-Element Open XML SDK-Klasse
<tableColumn/> TableColumn
<autoFilter/> AutoFilter

Open XML SDK-Tabellenklasse

Die Open XML SDK-Klasse Table stellt das Tabellenelement (<table/>) dar, das im Open XML-Dateiformatschema für SpreadsheetML-Dokumente definiert ist. Verwenden Sie die Table -Klasse, um einzelne <table/> Elemente in einem SpreadsheetML-Dokument zu bearbeiten.

Die folgenden Informationen aus der SPEZIFIKATION ISO/IEC 29500 stellen das table Element (<table/>) vor.

Eine Instanz dieses Teiletyps enthält eine Beschreibung einer einzelnen Tabelle und die zugehörigen AutoFilter-Informationen. (Die Daten für die Tabelle werden im entsprechenden Arbeitsblattteil gespeichert.)

The root element for a part of this content type shall be table.

The table part contains the definition of a single table. When there are multiple tables on a worksheet there are multiple table parts. The root element for this part is the table. At a minimum, the table only needs information about the table columns that make up the table. However, to enable autofiltering you must define at least one autofilter, which can be empty. If you do not define any autofilter, autofiltering will be disabled when the document is opened in Excel.

Das table -Element verfügt über mehrere Attribute, die zum Identifizieren der Tabelle und des datenbereichs verwendet werden, den es abdeckt. Die id Attribute und name müssen für alle Tabellenteile eindeutig sein. Das displayName Attribut muss für alle Tabellenteile und für alle definierten Namen in der Arbeitsmappe eindeutig sein. Das name -Attribut wird vom Objektmodell in Excel verwendet. Das displayName -Attribut wird von Verweisen in Formeln verwendet. Das ref -Attribut wird verwendet, um den Zellbereich zu identifizieren, den die Tabelle abdeckt. Hierzu gehören nicht nur die Tabellendaten, sondern auch die Tabellenüberschrift mit den Spaltennamen. Weitere Informationen zu Tabellenattributen finden Sie in der Spezifikation ISO/IEC 29500.

TableColumn-Klasse

Um Ihrer Tabelle Spalten hinzuzufügen, fügen Sie der tableColumns Auflistung neue tableColumn Elemente hinzu. The collection has a count attribute that tracks the number of columns.

Die folgenden Informationen aus der SPEZIFIKATION ISO/IEC 29500 stellen das TableColumn Element (<tableColumn/>) vor.

Ein Element, das eine einzelne Spalte für diese Tabelle darstellt.

AutoFilter-Klasse

Die folgenden Informationen aus der SPEZIFIKATION ISO/IEC 29500 stellen das AutoFilter Element (<autoFilter/>) vor.

Durch AutoFilter werden Zeilen nach Filterkriterien vorübergehend ausgeblendet, was spaltenweise für eine Datentabelle im Arbeitsblatt erfolgt. Durch diese Auflistung werden AutoFilter-Einstellungen ausgedrückt.

Beispiel: In diesem Beispiel gibt ein Filter an, dass nur Werte größer als 0,5 angezeigt werden sollen. Der Filter wird auf den Bereich B3:E8 angewendet, und die Kriterien werden auf die Werte in der Spalte mit colId=„1“ angewendet (Null-basierte Spaltennummerierung, von links nach rechts). Daher müssen alle Zeilen ausgeblendet werden, wenn der Wert in dieser Spalte kleiner als oder gleich 0,5 ist.

<autoFilter ref="B3:E8">
    <filterColumn colId="1">
        <customFilters>
            <customFilter operator="greaterThan" val="0.5"/>
        </customFilters>
    </filterColumn>
</autoFilter>

SpreadsheetML-Beispiel

Dieses Beispiel zeigt die XML für eine Datei, die eine Tabelle auf "Sheet1" enthält. Die Tabelle enthält 3 Spalten und 3 Zeilen sowie eine Spaltenüberschrift.

The following XML defines the worksheet and is contained in the "sheet1.xml" file. Die XML-Datei des Arbeitsblatts enthält die tatsächlichen Daten, die in der Tabelle angezeigt werden, und enthält das tablePart Element, das auf die Datei "table1.xml" verweist, die die Tabellendefinition enthält.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <worksheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:mc="https://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac" xmlns:x14ac="https://schemas.microsoft.com/office/spreadsheetml/2009/9/ac">
        <dimension ref="A1:C4"/>
        <sheetViews>
            <sheetView tabSelected="1" workbookViewId="0">
                <selection sqref="A1:C4"/>
            </sheetView>
        </sheetViews>
        <sheetFormatPr defaultRowHeight="15" x14ac:dyDescent="0.25"/>
        <cols>
            <col min="1" max="3" width="11" customWidth="1"/>
        </cols>
        <sheetData>
            <row r="1" spans="1:3" x14ac:dyDescent="0.25">
                <c r="A1" t="s">
                    <v>0</v>
                </c>
                <c r="B1" t="s">
                    <v>1</v>
                </c>
                <c r="C1" t="s">
                    <v>2</v>
                </c>
            </row>
            <row r="2" spans="1:3" x14ac:dyDescent="0.25">
                <c r="A2">
                    <v>1</v>
                </c>
                <c r="B2">
                    <v>2</v>
                </c>
                <c r="C2">
                    <v>3</v>
                </c>
            </row>
            <row r="3" spans="1:3" x14ac:dyDescent="0.25">
                <c r="A3">
                    <v>4</v>
                </c>
                <c r="B3">
                    <v>5</v>
                </c>
                <c r="C3">
                    <v>6</v>
                </c>
            </row>
            <row r="4" spans="1:3" x14ac:dyDescent="0.25">
                <c r="A4">
                    <v>7</v>
                </c>
                <c r="B4">
                    <v>8</v>
                </c>
                <c r="C4">
                    <v>9</v>
                </c>
            </row>
        </sheetData>
        <pageMargins left="0.7" right="0.7" top="0.75" bottom="0.75" header="0.3" footer="0.3"/>
        <tableParts count="1">
            <tablePart r:id="rId1"/>
        </tableParts>
    </worksheet>

The following XML defines the table and is contained in the "table1.xml" file. The table XML file defines how the range of the table and how the table looks, and defines any autofilters for the table.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <table xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" id="1" name="Table1" displayName="Table1" ref="A1:C4" totalsRowShown="0">
        <autoFilter ref="A1:C4"/>
        <tableColumns count="3">
            <tableColumn id="1" name="Column1"/>
            <tableColumn id="2" name="Column2"/>
            <tableColumn id="3" name="Column3"/>
        </tableColumns>
        <tableStyleInfo name="TableStyleMedium2" showFirstColumn="0" showLastColumn="0" showRowStripes="1" showColumnStripes="0"/>
    </table>