Excel.PivotLayout class
Représente la disposition visuelle du tableau croisé dynamique.
- Extends
Remarques
[ Ensemble d’API : ExcelApi 1.8 ]
Propriétés
alt |
Description du texte de remplacement du tableau croisé dynamique. Le texte de remplacement fournit des représentations textuelles alternatives des informations contenues dans le tableau croisé dynamique. Ces informations sont utiles pour les personnes malvoyantes ou cognitives qui peuvent ne pas être en mesure de voir ou de comprendre le tableau. Un titre peut être lu à une personne handicapée et est utilisé pour déterminer si elle souhaite entendre la description du contenu. |
alt |
Titre du texte de remplacement du tableau croisé dynamique. Le texte de remplacement fournit des représentations textuelles alternatives des informations contenues dans le tableau croisé dynamique. Ces informations sont utiles pour les personnes malvoyantes ou cognitives qui peuvent ne pas être en mesure de voir ou de comprendre le tableau. Un titre peut être lu à une personne handicapée et est utilisé pour déterminer si elle souhaite entendre la description du contenu. |
auto |
Spécifie si la mise en forme est automatiquement mise en forme lorsqu’elle est actualisée ou lorsque les champs sont déplacés. |
context | Contexte de requête associé à l’objet . Cela connecte le processus du complément au processus de l’application hôte Office. |
empty |
Texte qui est automatiquement rempli dans une cellule vide du tableau croisé dynamique si |
enable |
Spécifie si la liste de champs peut être affichée dans l’interface utilisateur. |
fill |
Spécifie si les cellules vides du tableau croisé dynamique doivent être remplies avec le |
layout |
Cette propriété indique le PivotLayoutType de tous les champs sur le tableau croisé dynamique. Si les champs ont des états différents, la valeur sera null. |
preserve |
Spécifie si la mise en forme est conservée lorsque le rapport est actualisé ou recalculé par des opérations telles que le tableau croisé dynamique, le tri ou la modification d’éléments de champ de page. |
show |
Spécifie si le rapport de tableau croisé dynamique affiche des totaux généraux pour les colonnes. |
show |
Spécifie si le tableau croisé dynamique affiche les en-têtes de champ (légendes de champ et listes déroulantes de filtre). |
show |
Spécifie si le rapport de tableau croisé dynamique affiche des totaux généraux pour les lignes. |
subtotal |
Cette propriété indique le |
Méthodes
display |
Définit si une ligne vide doit être affichée ou non après chaque élément. Il est défini au niveau global pour le tableau croisé dynamique et appliqué à des champs croisés dynamiques individuels. Cette fonction remplace le paramètre de tous les champs du tableau croisé dynamique par la valeur du |
get |
Renvoie la plage où les étiquettes de colonnes de tableau croisé dynamique se trouvent. |
get |
Renvoie la plage où les valeurs de données de tableau croisé dynamique se trouvent. |
get |
Obtient DataHierarchy servant à calculer la valeur dans une plage spécifiée dans le tableau croisé dynamique. |
get |
Renvoie la plage de la zone de filtre de tableau croisé dynamique. |
get |
Obtient le PivotItems à partir d’un axe qui composent la valeur dans une plage spécifiée dans le tableau croisé dynamique. |
get |
Obtient le PivotItems à partir d’un axe qui composent la valeur dans une plage spécifiée dans le tableau croisé dynamique. |
get |
Renvoie la plage sur laquelle le tableau croisé dynamique existe, à l’exception de la zone de filtre. |
get |
Renvoie la plage où les étiquettes de lignes de tableau croisé dynamique se trouvent. |
load(options) | Files d’attente de la commande pour charger les propriétés de l’objet spécifié. Vous devez contacter |
load(property |
Files d’attente de la commande pour charger les propriétés de l’objet spécifié. Vous devez contacter |
load(property |
Files d’attente de la commande pour charger les propriétés de l’objet spécifié. Vous devez contacter |
repeat |
Définit le paramètre « répéter toutes les étiquettes d’élément » sur tous les champs du tableau croisé dynamique. |
set(properties, options) | Définit plusieurs propriétés d’un objet en même temps. Vous pouvez passer un objet brut avec les propriétés appropriées ou un autre objet API du même type. |
set(properties) | Définit plusieurs propriétés sur l’objet en même temps, en fonction d’un objet chargé existant. |
set |
Définit le tableau croisé dynamique pour trier automatiquement à l’aide de la cellule spécifiée pour sélectionner automatiquement tous les critères et contexte nécessaires. Cela se comporte de la même manière que d’appliquer un tri automatique de l’interface utilisateur. |
set |
Définit le tableau croisé dynamique pour trier automatiquement à l’aide de la cellule spécifiée pour sélectionner automatiquement tous les critères et contexte nécessaires. Cela se comporte de la même manière que d’appliquer un tri automatique de l’interface utilisateur. |
toJSON() | Remplace la méthode JavaScript |
Détails de la propriété
altTextDescription
Description du texte de remplacement du tableau croisé dynamique.
Le texte de remplacement fournit des représentations textuelles alternatives des informations contenues dans le tableau croisé dynamique. Ces informations sont utiles pour les personnes malvoyantes ou cognitives qui peuvent ne pas être en mesure de voir ou de comprendre le tableau. Un titre peut être lu à une personne handicapée et est utilisé pour déterminer si elle souhaite entendre la description du contenu.
altTextDescription: string;
Valeur de propriété
string
Remarques
[ Ensemble d’API : ExcelApi 1.13 ]
Exemples
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/38-pivottable/pivottable-pivotlayout.yaml
await Excel.run(async (context) => {
// Set the alt text for the displayed PivotTable.
const pivotTable = context.workbook.pivotTables.getItem("Farm Sales");
const pivotLayout = pivotTable.layout;
pivotLayout.altTextTitle = "Farm Sales PivotTable";
pivotLayout.altTextDescription = "A summary of fruit sales. It is pivoted on farm name, and fruit type. The aggregated data is both the sums of crates sold at the farms and the sums of crates sold wholesale.";
console.log("Adding alt text. Check the PivotTable settings to see the changes.");
await context.sync();
});
altTextTitle
Titre du texte de remplacement du tableau croisé dynamique.
Le texte de remplacement fournit des représentations textuelles alternatives des informations contenues dans le tableau croisé dynamique. Ces informations sont utiles pour les personnes malvoyantes ou cognitives qui peuvent ne pas être en mesure de voir ou de comprendre le tableau. Un titre peut être lu à une personne handicapée et est utilisé pour déterminer si elle souhaite entendre la description du contenu.
altTextTitle: string;
Valeur de propriété
string
Remarques
autoFormat
Spécifie si la mise en forme est automatiquement mise en forme lorsqu’elle est actualisée ou lorsque les champs sont déplacés.
autoFormat: boolean;
Valeur de propriété
boolean
Remarques
context
Contexte de requête associé à l’objet . Cela connecte le processus du complément au processus de l’application hôte Office.
context: RequestContext;
Valeur de propriété
emptyCellText
Texte qui est automatiquement rempli dans une cellule vide du tableau croisé dynamique si fillEmptyCells == true
. Notez que cette valeur persiste si fillEmptyCells
est défini sur false
et que la définition de cette valeur ne définit pas cette propriété sur true
. Par défaut, il s’agit d’une chaîne vide.
emptyCellText: string;
Valeur de propriété
string
Remarques
[ Ensemble d’API : ExcelApi 1.13 ]
Exemples
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/38-pivottable/pivottable-pivotlayout.yaml
await Excel.run(async (context) => {
// Set a default value for an empty cell in the PivotTable. This doesn't include cells left blank by the layout.
const pivotTable = context.workbook.pivotTables.getItem("Farm Sales");
const pivotLayout = pivotTable.layout;
pivotLayout.emptyCellText = "--";
// Set the text alignment to match the rest of the PivotTable.
pivotLayout.getDataBodyRange().format.horizontalAlignment = Excel.HorizontalAlignment.right;
await context.sync();
});
enableFieldList
Spécifie si la liste de champs peut être affichée dans l’interface utilisateur.
enableFieldList: boolean;
Valeur de propriété
boolean
Remarques
fillEmptyCells
Spécifie si les cellules vides du tableau croisé dynamique doivent être remplies avec le emptyCellText
. La valeur par défaut est false
. Notez que la valeur de emptyCellText
persiste lorsque cette propriété est définie sur false
.
fillEmptyCells: boolean;
Valeur de propriété
boolean
Remarques
[ Ensemble d’API : ExcelApi 1.13 ]
Exemples
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/38-pivottable/pivottable-pivotlayout.yaml
await Excel.run(async (context) => {
// Toggle whether empty cells are filled with a default value.
const pivotTable = context.workbook.pivotTables.getItem("Farm Sales");
const pivotLayout = pivotTable.layout;
pivotLayout.load("fillEmptyCells");
await context.sync();
let fillToSet = !pivotLayout.fillEmptyCells;
console.log(`Filling empty cells? - ${fillToSet}`);
pivotLayout.fillEmptyCells = fillToSet;
await context.sync();
});
layoutType
Cette propriété indique le PivotLayoutType de tous les champs sur le tableau croisé dynamique. Si les champs ont des états différents, la valeur sera null.
layoutType: Excel.PivotLayoutType | "Compact" | "Tabular" | "Outline";
Valeur de propriété
Excel.PivotLayoutType | "Compact" | "Tabular" | "Outline"
Remarques
[ Ensemble d’API : ExcelApi 1.8 ]
Exemples
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/38-pivottable/pivottable-pivotlayout.yaml
await Excel.run(async (context) => {
// Change the PivotLayout.type to a new type.
const pivotTable = context.workbook.worksheets.getActiveWorksheet().pivotTables.getItem("Farm Sales");
pivotTable.layout.load("layoutType");
await context.sync();
// Cycle between the three layout types.
if (pivotTable.layout.layoutType === "Compact") {
pivotTable.layout.layoutType = "Outline";
} else if (pivotTable.layout.layoutType === "Outline") {
pivotTable.layout.layoutType = "Tabular";
} else {
pivotTable.layout.layoutType = "Compact";
}
await context.sync();
console.log("Pivot layout is now " + pivotTable.layout.layoutType);
});
preserveFormatting
Spécifie si la mise en forme est conservée lorsque le rapport est actualisé ou recalculé par des opérations telles que le tableau croisé dynamique, le tri ou la modification d’éléments de champ de page.
preserveFormatting: boolean;
Valeur de propriété
boolean
Remarques
[ Ensemble d’API : ExcelApi 1.9 ]
Exemples
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/38-pivottable/pivottable-pivotlayout.yaml
await Excel.run(async (context) => {
// Set whether the PivotTable keeps the established format after it is refreshed and recalculated.
const pivotTable = context.workbook.pivotTables.getItem("Farm Sales");
const pivotLayout = pivotTable.layout;
pivotLayout.load("preserveFormatting");
await context.sync();
let preserveFormattingToSet = !pivotLayout.preserveFormatting;
console.log(`Preserve the formatting PivotTable after a refresh? - ${preserveFormattingToSet}`);
pivotLayout.preserveFormatting = preserveFormattingToSet;
await context.sync();
});
showColumnGrandTotals
Spécifie si le rapport de tableau croisé dynamique affiche des totaux généraux pour les colonnes.
showColumnGrandTotals: boolean;
Valeur de propriété
boolean
Remarques
[ Ensemble d’API : ExcelApi 1.8 ]
Exemples
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/38-pivottable/pivottable-pivotlayout.yaml
await Excel.run(async (context) => {
// Turn the grand totals on and off for the rows and columns.
const pivotTable = context.workbook.pivotTables.getItem("Farm Sales");
const pivotLayout = pivotTable.layout;
pivotLayout.load(["showRowGrandTotals", "showColumnGrandTotals"]);
await context.sync();
let showColumnTotals = !pivotLayout.showColumnGrandTotals;
let showRowTotals = !pivotLayout.showRowGrandTotals;
console.log(`Show column grand totals? - ${showColumnTotals}`);
console.log(`Show row grand totals? - ${showRowTotals}`);
pivotLayout.showColumnGrandTotals = showColumnTotals;
pivotLayout.showRowGrandTotals = showRowTotals;
await context.sync();
});
showFieldHeaders
Spécifie si le tableau croisé dynamique affiche les en-têtes de champ (légendes de champ et listes déroulantes de filtre).
showFieldHeaders: boolean;
Valeur de propriété
boolean
Remarques
[ Ensemble d’API : ExcelApi 1.13 ]
Exemples
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/38-pivottable/pivottable-pivotlayout.yaml
await Excel.run(async (context) => {
// Turn the field headers on and off for the row and column hierarchies.
const pivotTable = context.workbook.pivotTables.getItem("Farm Sales");
const pivotLayout = pivotTable.layout;
pivotLayout.load("showFieldHeaders");
await context.sync();
let showHeaders = !pivotLayout.showFieldHeaders;
console.log(`Show field headers? - ${showHeaders}`);
pivotLayout.showFieldHeaders = showHeaders;
await context.sync();
});
showRowGrandTotals
Spécifie si le rapport de tableau croisé dynamique affiche des totaux généraux pour les lignes.
showRowGrandTotals: boolean;
Valeur de propriété
boolean
Remarques
[ Ensemble d’API : ExcelApi 1.8 ]
Exemples
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/38-pivottable/pivottable-pivotlayout.yaml
await Excel.run(async (context) => {
// Turn the grand totals on and off for the rows and columns.
const pivotTable = context.workbook.pivotTables.getItem("Farm Sales");
const pivotLayout = pivotTable.layout;
pivotLayout.load(["showRowGrandTotals", "showColumnGrandTotals"]);
await context.sync();
let showColumnTotals = !pivotLayout.showColumnGrandTotals;
let showRowTotals = !pivotLayout.showRowGrandTotals;
console.log(`Show column grand totals? - ${showColumnTotals}`);
console.log(`Show row grand totals? - ${showRowTotals}`);
pivotLayout.showColumnGrandTotals = showColumnTotals;
pivotLayout.showRowGrandTotals = showRowTotals;
await context.sync();
});
subtotalLocation
Cette propriété indique le SubtotalLocationType
de tous les champs du tableau croisé dynamique. Si les champs ont des états différents, il s’agit de null
.
subtotalLocation: Excel.SubtotalLocationType | "AtTop" | "AtBottom" | "Off";
Valeur de propriété
Excel.SubtotalLocationType | "AtTop" | "AtBottom" | "Off"
Remarques
Détails de la méthode
displayBlankLineAfterEachItem(display)
Définit si une ligne vide doit être affichée ou non après chaque élément. Il est défini au niveau global pour le tableau croisé dynamique et appliqué à des champs croisés dynamiques individuels. Cette fonction remplace le paramètre de tous les champs du tableau croisé dynamique par la valeur du display
paramètre .
displayBlankLineAfterEachItem(display: boolean): void;
Paramètres
- display
-
boolean
True active le paramètre d’affichage de ligne vide. False le désactive.
Retours
void
Remarques
[ Ensemble d’API : ExcelApi 1.13 ]
Exemples
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/38-pivottable/pivottable-pivotlayout.yaml
await Excel.run(async (context) => {
// Add a blank row after each PivotItem in the row hierarchy.
const pivotTable = context.workbook.pivotTables.getItem("Farm Sales");
const pivotLayout = pivotTable.layout;
pivotLayout.displayBlankLineAfterEachItem(true);
console.log("Setting `PivotLayout.displayBlankLineAfterEachItem` to true.");
await context.sync();
});
getColumnLabelRange()
Renvoie la plage où les étiquettes de colonnes de tableau croisé dynamique se trouvent.
getColumnLabelRange(): Excel.Range;
Retours
Remarques
getDataBodyRange()
Renvoie la plage où les valeurs de données de tableau croisé dynamique se trouvent.
getDataBodyRange(): Excel.Range;
Retours
Remarques
[ Ensemble d’API : ExcelApi 1.8 ]
Exemples
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/38-pivottable/pivottable-filters-and-summaries.yaml
await Excel.run(async (context) => {
const pivotTable = context.workbook.worksheets.getActiveWorksheet().pivotTables.getItem("Farm Sales");
// The layout controls the ranges used by the PivotTable.
const range = pivotTable.layout.getDataBodyRange();
// Get all the data hierarchy totals.
const grandTotalRange = range.getLastRow();
grandTotalRange.load("address");
await context.sync();
// Use the wholesale and farm sale totals to make a final sum.
const masterTotalRange = context.workbook.worksheets.getActiveWorksheet().getRange("B27:C27");
masterTotalRange.formulas = [["All Crates", "=SUM(" + grandTotalRange.address + ")"]];
await context.sync();
});
getDataHierarchy(cell)
Obtient DataHierarchy servant à calculer la valeur dans une plage spécifiée dans le tableau croisé dynamique.
getDataHierarchy(cell: Range | string): Excel.DataPivotHierarchy;
Paramètres
- cell
-
Excel.Range | string
Cellule unique dans le corps de données du tableau croisé dynamique.
Retours
Objet DataPivotHierarchy utilisé pour calculer la valeur dans la cellule spécifiée.
Remarques
getFilterAxisRange()
Renvoie la plage de la zone de filtre de tableau croisé dynamique.
getFilterAxisRange(): Excel.Range;
Retours
Remarques
getPivotItems(axis, cell)
Obtient le PivotItems à partir d’un axe qui composent la valeur dans une plage spécifiée dans le tableau croisé dynamique.
getPivotItems(axis: Excel.PivotAxis, cell: Range | string): Excel.PivotItemCollection;
Paramètres
- axis
- Excel.PivotAxis
Axe à partir duquel obtenir les éléments croisés dynamiques. Doit être « row » ou « column ».
- cell
-
Excel.Range | string
Cellule unique dans le corps des données du tableau croisé dynamique.
Retours
PivotItemCollection des pivotitems utilisés pour calculer les valeurs de la ligne spécifiée.
Remarques
getPivotItems(axisString, cell)
Obtient le PivotItems à partir d’un axe qui composent la valeur dans une plage spécifiée dans le tableau croisé dynamique.
getPivotItems(axisString: "Unknown" | "Row" | "Column" | "Data" | "Filter", cell: Range | string): Excel.PivotItemCollection;
Paramètres
- axisString
-
"Unknown" | "Row" | "Column" | "Data" | "Filter"
Axe à partir duquel obtenir les éléments croisés dynamiques. Doit être « row » ou « column ».
- cell
-
Excel.Range | string
Cellule unique dans le corps des données du tableau croisé dynamique.
Retours
PivotItemCollection des pivotitems utilisés pour calculer les valeurs de la ligne spécifiée.
Remarques
getRange()
Renvoie la plage sur laquelle le tableau croisé dynamique existe, à l’exception de la zone de filtre.
getRange(): Excel.Range;
Retours
Remarques
getRowLabelRange()
Renvoie la plage où les étiquettes de lignes de tableau croisé dynamique se trouvent.
getRowLabelRange(): Excel.Range;
Retours
Remarques
load(options)
Files d’attente de la commande pour charger les propriétés de l’objet spécifié. Vous devez contacter context.sync()
avant de lire les propriétés.
load(options?: Excel.Interfaces.PivotLayoutLoadOptions): Excel.PivotLayout;
Paramètres
Fournit des options pour les propriétés de l’objet à charger.
Retours
load(propertyNames)
Files d’attente de la commande pour charger les propriétés de l’objet spécifié. Vous devez contacter context.sync()
avant de lire les propriétés.
load(propertyNames?: string | string[]): Excel.PivotLayout;
Paramètres
- propertyNames
-
string | string[]
Chaîne délimitée par des virgules ou tableau de chaînes qui spécifient les propriétés à charger.
Retours
load(propertyNamesAndPaths)
Files d’attente de la commande pour charger les propriétés de l’objet spécifié. Vous devez contacter context.sync()
avant de lire les propriétés.
load(propertyNamesAndPaths?: {
select?: string;
expand?: string;
}): Excel.PivotLayout;
Paramètres
- propertyNamesAndPaths
-
{ select?: string; expand?: string; }
propertyNamesAndPaths.select
est une chaîne délimitée par des virgules qui spécifie les propriétés à charger, et propertyNamesAndPaths.expand
est une chaîne délimitée par des virgules qui spécifie les propriétés de navigation à charger.
Retours
repeatAllItemLabels(repeatLabels)
Définit le paramètre « répéter toutes les étiquettes d’élément » sur tous les champs du tableau croisé dynamique.
repeatAllItemLabels(repeatLabels: boolean): void;
Paramètres
- repeatLabels
-
boolean
True active le paramètre d’affichage de répétition d’étiquette. False le désactive.
Retours
void
Remarques
[ Ensemble d’API : ExcelApi 1.13 ]
Exemples
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/38-pivottable/pivottable-pivotlayout.yaml
await Excel.run(async (context) => {
// Repeat the PivotItem labels for each row used by another level of the row hierarchy.
const pivotTable = context.workbook.pivotTables.getItem("Farm Sales");
const pivotLayout = pivotTable.layout;
pivotLayout.repeatAllItemLabels(true);
console.log("Setting `PivotLayout.repeatAllItemLabels` to true.");
await context.sync();
});
set(properties, options)
Définit plusieurs propriétés d’un objet en même temps. Vous pouvez passer un objet brut avec les propriétés appropriées ou un autre objet API du même type.
set(properties: Interfaces.PivotLayoutUpdateData, options?: OfficeExtension.UpdateOptions): void;
Paramètres
- properties
- Excel.Interfaces.PivotLayoutUpdateData
Objet JavaScript avec des propriétés qui sont structurées isomorphes en fonction des propriétés de l’objet sur lequel la méthode est appelée.
- options
- OfficeExtension.UpdateOptions
Fournit une option permettant de supprimer les erreurs si l’objet properties tente de définir des propriétés en lecture seule.
Retours
void
set(properties)
Définit plusieurs propriétés sur l’objet en même temps, en fonction d’un objet chargé existant.
set(properties: Excel.PivotLayout): void;
Paramètres
- properties
- Excel.PivotLayout
Retours
void
setAutoSortOnCell(cell, sortBy)
Définit le tableau croisé dynamique pour trier automatiquement à l’aide de la cellule spécifiée pour sélectionner automatiquement tous les critères et contexte nécessaires. Cela se comporte de la même manière que d’appliquer un tri automatique de l’interface utilisateur.
setAutoSortOnCell(cell: Range | string, sortBy: Excel.SortBy): void;
Paramètres
- cell
-
Excel.Range | string
Une seule cellule à utiliser pour obtenir les critères à partir de pour appliquer le tri automatique.
- sortBy
- Excel.SortBy
Direction du genre.
Retours
void
Remarques
setAutoSortOnCell(cell, sortByString)
Définit le tableau croisé dynamique pour trier automatiquement à l’aide de la cellule spécifiée pour sélectionner automatiquement tous les critères et contexte nécessaires. Cela se comporte de la même manière que d’appliquer un tri automatique de l’interface utilisateur.
setAutoSortOnCell(cell: Range | string, sortByString: "Ascending" | "Descending"): void;
Paramètres
- cell
-
Excel.Range | string
Une seule cellule à utiliser pour obtenir les critères à partir de pour appliquer le tri automatique.
- sortByString
-
"Ascending" | "Descending"
Direction du genre.
Retours
void
Remarques
toJSON()
Remplace la méthode JavaScript toJSON()
afin de fournir une sortie plus utile lorsqu’un objet API est passé à JSON.stringify()
. (JSON.stringify
appelle à son tour la toJSON
méthode de l’objet qui lui est passé.) Alors que l’objet Excel.PivotLayout d’origine est un objet API, la toJSON
méthode renvoie un objet JavaScript brut (tapé en tant Excel.Interfaces.PivotLayoutData
que ) qui contient des copies superficielles de toutes les propriétés enfants chargées à partir de l’objet d’origine.
toJSON(): Excel.Interfaces.PivotLayoutData;