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 gérer 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 remplacées par une classe personnalisée pour obtenir les étiquettes souhaité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 de grand total de la fonction.
  3. GlobalizationSettings.getOtherName: Obtient le nom des étiquettes “Autres” 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-dessous.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
public String getTotalName(int functionType) {
switch (functionType) {
case ConsolidationFunction.AVERAGE:
return "AVG";
// Handle other cases
default:
return super.getTotalName(functionType);
}
}
public String getGrandTotalName(int functionType) {
switch (functionType) {
case ConsolidationFunction.AVERAGE:
return "GRAND AVG";
// Handle other cases
default:
return super.getGrandTotalName(functionType);
}
}
public String getOtherName()
{
String language = Locale.getDefault().getLanguage();
System.out.println(language);
switch (language)
{
case "en":
return "Other";
case "fr":
return "Autre";
case "de":
return "Andere";
//Handle other cases as per requirement
default:
return super.getOtherName();
}
}

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-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(CustomLabelsforSubtotals.class) + "articles/";
// 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.getSettings().setGlobalizationSettings(new CustomSettings());
// Accesses the 1st worksheet from the collection which contains data
// Data resides in the cell range A2:B9
Worksheet sheet = book.getWorksheets().get(0);
// Adds SubTotal of type Average to the worksheet
sheet.getCells().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 + "CustomLabelsforSubtotals_out.xlsx");

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

La classe GlobalizationSettings propose 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 remplace la méthode getOtherName pour obtenir une étiquette personnalisée en fonction de la langue par défaut définie pour la JVM.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
public String getTotalName(int functionType) {
switch (functionType) {
case ConsolidationFunction.AVERAGE:
return "AVG";
// Handle other cases
default:
return super.getTotalName(functionType);
}
}
public String getGrandTotalName(int functionType) {
switch (functionType) {
case ConsolidationFunction.AVERAGE:
return "GRAND AVG";
// Handle other cases
default:
return super.getGrandTotalName(functionType);
}
}
public String getOtherName()
{
String language = Locale.getDefault().getLanguage();
System.out.println(language);
switch (language)
{
case "en":
return "Other";
case "fr":
return "Autre";
case "de":
return "Andere";
//Handle other cases as per requirement
default:
return super.getOtherName();
}
}

L’extrait suivant charge une feuille de calcul existante contenant un graphique circulaire et rend le graphique sous forme d’image tout en utilisant la classe CustomSettings créée précédemment.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(CustomTextforOtherLabelofPieChart.class) + "articles/";
//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.getSettings().setGlobalizationSettings(new CustomSettings());
//Accesses the 1st worksheet from the collection which contains pie chart
Worksheet sheet = book.getWorksheets().get(0);
//Accesses the 1st chart from the collection
Chart chart = sheet.getCharts().get(0);
//Refreshes the chart
chart.calculate();
//Renders the chart to image
chart.toImage(dataDir + "CustomTextforOtherLabelofPieChart_out.png", new ImageOrPrintOptions());

Voici l’image résultante lorsque le paramètre régional de la machine est défini sur la France. Comme vous pouvez le voir, l’étiquette “Autre” a été traduite en “Autre” comme défini dans la classe CustomSettings.

todo:image_alt_text