Personnaliser les paramètres de globalisation pour la table croisée dynamique
Scénarios d’utilisation possibles
Parfois, vous souhaitez personnaliser le Total des éléments de la table, le Sous-total, le grand total, tous les éléments, plusieurs éléments, étiquettes de colonnes, étiquettes de lignes, valeurs vides selon vos besoins. Aspose.Cells vous permet de personnaliser les paramètres de globalisation de la table croisée dynamique pour traiter de tels scénarios. Vous pouvez également utiliser cette fonctionnalité pour changer les libellés dans d’autres langues comme l’arabe, l’hindi, le polonais, etc.
Personnaliser les paramètres de globalisation pour le tableau croisé dynamique
Le code d’exemple suivant explique comment personnaliser les paramètres de globalisation pour le tableau croisé dynamique. Il crée une classe CustomPivotTableGlobalizationSettings dérivée d’une classe de base PivotGlobalizationSettings et remplace toutes ses méthodes nécessaires. Ces méthodes renvoient le texte personnalisé pour les Total des valeurs, Sous-total, Total général, Tous les éléments, Plusieurs éléments, Étiquettes de colonne, Étiquettes de ligne, Valeurs vides. Ensuite, il affecte l’objet de cette classe à la propriété WorkbookSettings.GlobalizationSettings.PivotSettings. Le code charge le fichier Excel source qui contient le tableau croisé dynamique, actualise et calcule ses données et le sauvegarde sous la forme d’un fichier PDF de sortie. La capture d’écran suivante montre l’effet du code d’exemple sur le fichier PDF de sortie. Comme vous pouvez le voir sur la capture d’écran, différentes parties du tableau croisé dynamique ont désormais un texte personnalisé renvoyé par les méthodes remplacées de la classe PivotGlobalizationSettings.
Code d’exemple
// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET | |
private class CustomPivotTableGlobalizationSettings : PivotGlobalizationSettings | |
{ | |
//Gets the name of "Total" label in the PivotTable. | |
//You need to override this method when the PivotTable contains two or more PivotFields in the data area. | |
public override string GetTextOfTotal() | |
{ | |
Console.WriteLine("---------GetPivotTotalName-------------"); | |
return "AsposeGetPivotTotalName"; | |
} | |
//Gets the name of "Grand Total" label in the PivotTable. | |
public override string GetTextOfGrandTotal() | |
{ | |
Console.WriteLine("---------GetPivotGrandTotalName-------------"); | |
return "AsposeGetPivotGrandTotalName"; | |
} | |
//Gets the name of "(Multiple Items)" label in the PivotTable. | |
public override string GetTextOfMultipleItems() | |
{ | |
Console.WriteLine("---------GetMultipleItemsName-------------"); | |
return "AsposeGetMultipleItemsName"; | |
} | |
//Gets the name of "(All)" label in the PivotTable. | |
public override string GetTextOfAll() | |
{ | |
Console.WriteLine("---------GetAllName-------------"); | |
return "AsposeGetAllName"; | |
} | |
//Gets the name of "Column Labels" label in the PivotTable. | |
public override string GetTextOfColumnLabels() | |
{ | |
Console.WriteLine("---------GetColumnLabelsOfPivotTable-------------"); | |
return "AsposeGetColumnLabelsOfPivotTable"; | |
} | |
//Gets the name of "Row Labels" label in the PivotTable. | |
public override string GetTextOfRowLabels() | |
{ | |
Console.WriteLine("---------GetRowLabelsNameOfPivotTable-------------"); | |
return "AsposeGetRowLabelsNameOfPivotTable"; | |
} | |
//Gets the name of "(blank)" label in the PivotTable. | |
public override string GetTextOfEmptyData() | |
{ | |
Console.WriteLine("---------GetEmptyDataName-------------"); | |
return "(blank)AsposeGetEmptyDataName"; | |
} | |
//Gets the name of PivotFieldSubtotalType type in the PivotTable. | |
public override string GetTextOfSubTotal(PivotFieldSubtotalType subTotalType) | |
{ | |
Console.WriteLine("---------GetSubTotalName-------------"); | |
switch (subTotalType) | |
{ | |
case PivotFieldSubtotalType.Sum: | |
return "AsposeSum";//polish | |
case PivotFieldSubtotalType.Count: | |
return "AsposeCount"; | |
case PivotFieldSubtotalType.Average: | |
return "AsposeAverage"; | |
case PivotFieldSubtotalType.Max: | |
return "AsposeMax"; | |
case PivotFieldSubtotalType.Min: | |
return "AsposeMin"; | |
case PivotFieldSubtotalType.Product: | |
return "AsposeProduct"; | |
case PivotFieldSubtotalType.CountNums: | |
return "AsposeCount"; | |
case PivotFieldSubtotalType.Stdev: | |
return "AsposeStdDev"; | |
case PivotFieldSubtotalType.Stdevp: | |
return "AsposeStdDevp"; | |
case PivotFieldSubtotalType.Var: | |
return "AsposeVar"; | |
case PivotFieldSubtotalType.Varp: | |
return "AsposeVarp"; | |
} | |
return "AsposeSubTotalName"; | |
} | |
} | |
public static void Run() | |
{ | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | |
//Load your excel file | |
Workbook wb = new Workbook(dataDir + "samplePivotTableGlobalizationSettings.xlsx"); | |
//Setting Custom Pivot Table Globalization Settings | |
wb.Settings.GlobalizationSettings.PivotSettings = new CustomPivotTableGlobalizationSettings(); | |
//Hide first worksheet that contains the data of the pivot table | |
wb.Worksheets[0].IsVisible = false; | |
//Access second worksheet | |
Worksheet ws = wb.Worksheets[1]; | |
//Access the pivot table, refresh and calculate its data | |
PivotTable pt = ws.PivotTables[0]; | |
pt.RefreshDataFlag = true; | |
pt.RefreshData(); | |
pt.CalculateData(); | |
pt.RefreshDataFlag = false; | |
//Pdf save options - save entire worksheet on a single pdf page | |
PdfSaveOptions options = new PdfSaveOptions(); | |
options.OnePagePerSheet = true; | |
//Save the output pdf | |
wb.Save(dataDir + "outputPivotTableGlobalizationSettings.pdf", options); | |
} |