Freigeben über


Arbeiten mit PivotTables

In diesem Thema wird die PivotTableDefinition-Klasse des Open XML SDK und ihre Beziehung zum SpreadsheetML-Schema des Open XML-Dateiformats erläutert. Weitere Informationen zur Gesamtstruktur der Teile und Elemente, aus denen ein SpreadsheetML-Dokument besteht, finden Sie unter Struktur eines SpreadsheetML-Dokuments.

PivotTable in SpreadsheetML

Die folgenden Informationen aus der ISO/IEC 29500-Spezifikation stellen das PivotTableDefinition-Element (<pivotTableDefinition>) vor.

PivotTables zeigen auf einfache Art und in einem verständlichen Layout aggregierte Ansichten von Daten an. Hunderte oder Tausende von zugrunde liegenden Informationen können auf Zeilen- und Spaltenachsen aggregiert werden, wobei die Bedeutung der Daten hervorgehoben werden kann. Mit PivotTable-Berichten werden Daten auf verschiedene Art strukturiert und zusammengefasst. Beim Erstellen eines PivotTable-Berichts werden Teile der Informationen verschoben, um zu sehen, wie sie zusammenpassen. Mit wenigen Bewegungen können die Pivot-Zeilen und -Spalten in verschiedene Anordnungen und Layouts verschoben werden.

Ein PivotTable-Objekt weist einen Zeilenachsenbereich, einen Spaltenachsenbereich, einen Wertebereich und einen Berichtsfilterbereich auf. Darüber hinaus enthalten PivotTables einen entsprechenden Feldlistenbereich, in dem alle Felder mit Daten angezeigt werden, die in einem der PivotTable-Bereiche platziert werden können.

The workbook points to (and owns the longevity of) the pivotCacheDefinition part, which in turn points to and owns the pivotCacheRecords part. The workbook also points to and owns the sheet part, which in turn points to and owns a pivotTable part definition, when a PivotTable is on the sheet (there can be multiple PivotTables on a sheet). The pivotTable part points to the appropriate pivotCacheDefinition which it is using. Since multiple PivotTables can use the same cache, the pivotTable part does not own the longevity of the pivotCacheDefinition.

The pivotTable part describes the particulars of the layout of the PivotTable on the sheet. It indicates what fields are on the row axis, the column axis, report filter, and values areas of the PivotTable. It also indicates formatting information about the PivotTable. If conditional formatting has been applied to the PivotTable, that is also expressed in the pivotTable part.

Die PivotTable-Cachedefinition enthält die Definitionen aller Felder in der PivotTable. Falls Sie eine PivotTable auf der Grundlage einer regulären Tabelle erstellen, wird jede Spalte in der Tabelle zu einem Feld der PivotTable-Cachedefinition. Der PivotTable-Cache enthält die Felddefinitionen und Informationen zum Inhaltstyp, der sich in diesem Feld befindet. Er verwaltet auch einen Verweis auf die Quelldaten im Cachemarkup, sodass der PivotTable-Cache mit den zwischengespeicherten Daten im PivotTable-Cachedatensätze-Teil aktualisiert werden kann.

Die in der PivotTable angezeigten Daten werden an zwei Speicherorten gespeichert. Der Pivotcache-Datensatzteil verwaltet die tatsächlichen Daten für die PivotTable. Die Tabellenzellen im Arbeitsblatt speichern auch eine zwischengespeicherte Version der Daten, die jedoch nur zu Anzeigezwecken dient. Der Pivotcache zeichnet einen Teil auf, der Daten auf eine von zwei Arten speichert. Die eindeutigen Werte für den Datenbereich der PivotTable werden inline zwischengespeichert. Auf die sich wiederholenden Elemente, die Sie normalerweise in der Zeile und Spalte finden, wird verwiesen. Diese freigegebenen Daten werden tatsächlich in der Pivotcachedefinition gespeichert. Jeder Datensatz im Pivotcache-Datensatzteil besteht aus N-Werten, wobei N gleich der Anzahl von Feldern ist, die in der Pivotcachedefinition definiert sind.

Im letzten Schritt wird die eigentliche PivotTable erstellt. Der PivotTable-Definitionsteil enthält die Informationen, welches Feld an welcher Stelle der PivotTable verfügbar ist. Ein Feld kann in vier Bereichen platziert werden: Zeile, Spalte, Daten oder Filter. Die Felder werden aus den zwischengespeicherten Feldern in der PivotTable-Cachedefinition ausgewählt.

Wenn Sie eine PivotTable erstellen möchten, die beim Öffnen der Arbeitsmappe direkt verwendet werden kann, müssen Sie auch das Markup für die Tabellenzellen erstellen. Die PivotTable wird in den Zellen eines Arbeitsblatts angezeigt, daher müssen diese ebenfalls konstruiert werden. Sie können auch angeben, dass der Benutzer die PivotTable-Zellen beim Öffnen des Dokuments aktualisieren soll.

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

SpreadsheetML-Element Open XML SDK-Klasse
pivotField PivotField
pivotCacheDefinition PivotCacheDefinition
pivotCacheRecords PivotCacheRecords

PivotTableDefinition-Klasse des Open XML SDK

DiePivotTableDefinition-Klasse des Open XML SDK stellt das PivotTable-Definitionselement (<pivotTableDefinition>) dar, das im Open XML-Dateiformatschema für SpreadsheetML-Dokumente definiert ist. Verwenden Sie die PivotTableDefinition-Klasse , um einzelne <pivotTableDefinition-Elemente> in einem SpreadsheetML-Dokument zu bearbeiten.

Die Standard Funktion der PivotTable-Definition besteht darin, Informationen darüber zu speichern, welches Feld auf welcher Achse der PivotTable in welcher Reihenfolge angezeigt wird. Es gibt viele weitere Einstellungen, die der PivotTable-Definition hinzugefügt werden können, aber im Folgenden werden die Grundlagen erläutert.

Das Stammelement benennt die PivotTable, sodass sie als Datenquelle verwendet werden kann. Das Stammelement verweist auch auf den PivotTable-Cache mithilfe der ID, die dem Arbeitsmappenteil hinzugefügt wurde, und es definiert die Überschrift, die über dem Datenbereich der PivotTable angezeigt werden soll. Alle diese Elemente sind erforderlich.

Die drei wichtigsten Teile des pivotTableDefinition-Elements lauten wie folgt: der Speicherort der Tabelle, die Anzeigeinformationen für die zwischengespeicherten Felder und die Positionsinformationen der zwischengespeicherten Felder. Weitere Informationen zu diesen und weiteren Elementen des pivotTableDefinition-Elements finden Sie in der ISO/IEC 29500-Spezifikation.

PivotField-Klasse

Das PivotTableDefinition-Element enthält die PivotField-Elemente (<pivotField>). Die folgenden Informationen aus der ISO/IEC 29500-Spezifikation stellen das PivotField-Element (<pivotField>) vor.

Es stellt ein einzelnes Feld in der PivotTable dar. Dieses Element enthält Informationen zum Feld, einschließlich der Auflistung von Elementen im Feld.

Definieren Sie zunächst die Auflistung der Felder, die in der PivotTable angezeigt werden, indem Sie das pivotFields-Element verwenden. Jedes Feld dient als Cache für die Daten dieses Felds in der Datenquelle. Der Cache muss nicht definiert werden. Stattdessen können Sie das item-Element auf default festlegen und den Benutzer die Tabelle beim Öffnen des Dokuments aktualisieren lassen. Das showAll-Attribut wird zum Ausblenden bestimmter Elemente für diese Datendimension verwendet. Nachdem definiert wurde, welche Felder Teil der Tabelle sind, werden die Felder auf die vier Bereiche der PivotTable angewendet.

Klasse für die Pivot-Cachedefinition

Mit den folgenden Informationen aus der SPEZIFIKATION ISO/IEC 29500 wird das PivotCacheDefinition-Element (<pivotCacheDefinition>) eingeführt.

The pivotCacheDefinition part defines each field in the pivotCacheRecords part, including field name and information about the data contained in the field. The pivotCacheDefinition part also defines pivot items that are shared among the pivotTable and pivotRecords parts.

Der PivotTable-Cache definiert die Datenquelle in der PivotTable, wodurch diese aktualisiert werden kann, und er definiert die Liste der Felder in diesen Daten. Beachten Sie, dass der Cache alle Felder definiert, die der PivotTable zur Verfügung stehen, nicht nur die Felder, die tatsächlich verwendet werden. Die PivotTable-Definition definiert, welche der verfügbaren Felder von einer bestimmten PivotTable verwendet werden.

Die Datenquellendefinition verweist auf die Daten, die in der PivotTable angezeigt werden. Die PivotTable verwaltet auch die Daten im Cache-Records-Teil, damit die Tabelle aktualisiert werden kann, wenn die Datenverbindung nicht verfügbar ist. Sie können sich nicht auf die Zellen der PivotTable verlassen, um die Daten zu speichern, da die Daten in diesen Zellen vorübergehend sind und sich ändern, wenn Sie die Tabelle pivotieren. Es gibt verschiedene Arten von Datenquellen, z. B. Arbeitsblätter, Datenbank, OLAP-Cube und andere PivotTables.

Im letzten Teil der Cachedefinition werden die Felder der Datenquelle mithilfe des cacheField-Elements definiert. Das cacheField-Element wird für zwei Dinge verwendet: Es definiert den Datentyp und die Formatierung des Felds und es wird als Cache für freigegebene Zeichenfolgen verwendet. Die Pivot-Werte werden im PivotTable-Cachedatensätze-Teil gespeichert. Wenn eine sich wiederholende Zeichenfolge als Wert verwendet wird, verwendet der Cachedatensatz einen Verweis auf die cacheField-Auflistung der freigegebenen Elemente.

Klasse für die Pivot-Cachedatensätze

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

The pivotCacheRecords part contains the underlying data to be aggregated. It is a cache of the source data.

Der Cachedatensätze-Teil kann eine beliebige Anzahl von zwischengespeicherten Datensätzen speichern. Jeder Datensatz verfügt über die gleiche Anzahl von Werten, die definiert sind wie Felder in der Cachedefinition. Jeder Datensatz wird mit dem r-Element definiert. Dieser Datensatz enthält Wertelemente als untergeordnete Elemente. Sie können bestimmte typisierte Werte angeben, z. B. Numerisch, Boolesch oder Datum/Uhrzeit, oder Sie können auf die freigegebenen Elemente verweisen.