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.
- GlobalizationSettings.getTotalName: Obtient le nom total de la fonction.
- GlobalizationSettings.getGrandTotalName: Obtient le nom de grand total de la fonction.
- 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.