Utilisation de la classe GlobalizationSettings pour les étiquettes de sous total personnalisées et d autres étiquettes de graphique circulaire

Scénarios d’utilisation possibles

Les API Aspose.Cells ont exposé la classe GlobalizationSettings afin de traiter les scénarios où l’utilisateur souhaite utiliser des étiquettes personnalisées pour les sous-totaux dans une feuille de calcul. De plus, la classe GlobalizationSettings peut également être utilisée pour modifier l’étiquette Autre du graphique circulaire lors du rendu de la feuille de calcul ou du graphique.

Introduction à la classe GlobalizationSettings

La classe GlobalizationSettings offre actuellement les 3 méthodes suivantes qui peuvent être substituées dans une classe personnalisée pour obtenir les étiquettes désirées pour les sous-totaux ou pour rendre un texte personnalisé pour l’étiquette Autre d’un graphique circulaire.

  1. GlobalizationSettings.GetTotalName : Obtient le nom total de la fonction.
  2. GlobalizationSettings.GetGrandTotalName : Obtient le nom du total général de la fonction.
  3. GlobalizationSettings.GetOtherName : Obtient le nom des étiquettes “Autre” pour les graphiques circulaires.

Étiquettes personnalisées pour les sous-totaux

La classe GlobalizationSettings peut être utilisée pour personnaliser les étiquettes de sous-total en remplaçant les méthodes GlobalizationSettings.GetTotalName & GlobalizationSettings.GetGrandTotalName comme démontré ci-dessus.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Defines a custom class derived from GlobalizationSettings class
class CustomSettings : GlobalizationSettings
{
// Overrides the GetTotalName method
public override string GetTotalName(ConsolidationFunction functionType)
{
// Checks the function type used to add the subtotals
switch (functionType)
{
// Returns custom value based on the function type used to add the subtotals
case ConsolidationFunction.Average:
return "AVG";
// Handle other cases as per requirement
default:
return base.GetTotalName(functionType);
}
}
// Overrides the GetGrandTotalName method
public override string GetGrandTotalName(ConsolidationFunction functionType)
{
// Checks the function type used to add the subtotals
switch (functionType)
{
// Returns custom value based on the function type used to add the subtotals
case ConsolidationFunction.Average:
return "GRD AVG";
// Handle other cases as per requirement
default:
return base.GetGrandTotalName(functionType);
}
}
}

Pour injecter des étiquettes personnalisées, il est nécessaire d’attribuer la propriété WorkbookSettings.GlobalizationSettings à une instance de la classe CustomSettings définie ci-dessus avant d’ajouter les sous-totaux à la feuille de calcul.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Loads an existing spreadsheet containing some data
Workbook book = new Workbook(dataDir + "sample.xlsx");
// Assigns the GlobalizationSettings property of the WorkbookSettings class to the class created in first step
book.Settings.GlobalizationSettings = new CustomSettings();
// Accesses the 1st worksheet from the collection which contains data resides in the cell range A2:B9
Worksheet sheet = book.Worksheets[0];
// Adds Subtotal of type Average to the worksheet
sheet.Cells.Subtotal(CellArea.CreateCellArea("A2", "B9"), 0, ConsolidationFunction.Average, new int[] { 1 });
// Calculates Formulas
book.CalculateFormula();
// Auto fits all columns
sheet.AutoFitColumns();
// Saves the workbook on disc
book.Save(dataDir + "output_out.xlsx");

Texte personnalisé pour l’étiquette Autre du graphique circulaire

La classe GlobalizationSettings offre la méthode GetOtherName qui est utile pour donner une valeur personnalisée à l’étiquette “Autre” des graphiques circulaires. L’extrait suivant définit une classe personnalisée et substitue la méthode GetOtherName pour obtenir une étiquette personnalisée basée sur l’identifiant de culture du système.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Defines a custom class inherited by GlobalizationSettings class
class GlobalCustomSettings : ChartGlobalizationSettings
{
// Overrides the GetOtherName method
public override string GetOtherName()
{
// Gets the culture identifier for the current system
int lcid = System.Globalization.CultureInfo.CurrentCulture.LCID;
switch (lcid)
{
// Handles case for English
case 1033:
return "Other";
// Handles case for French
case 1036:
return "Autre";
// Handles case for German
case 1031:
return "Andere";
// Handle other cases
default:
return base.GetOtherName();
}
}
}

L’extrait suivant charge une feuille de calcul existante contenant un graphique circulaire et rend le graphique en une image en utilisant la classe CustomSettings créée ci-dessus.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// Loads an existing spreadsheet containing a pie chart
Workbook book = new Workbook(dataDir + "sample.xlsx");
// Assigns the GlobalizationSettings property of the WorkbookSettings class to the class created in first step
book.Settings.GlobalizationSettings.ChartSettings = new GlobalCustomSettings();
// Accesses the 1st worksheet from the collection which contains pie chart
Worksheet sheet = book.Worksheets[0];
// Accesses the 1st chart from the collection
Chart chart = sheet.Charts[0];
// Refreshes the chart
chart.Calculate();
// Renders the chart to image
chart.ToImage(dataDir + "output_out.png", new ImageOrPrintOptions());