Verwendung der GlobalizationSettings Klasse für benutzerdefinierte Teilergebnisbezeichnungen und andere Beschriftungen des Kuchendiagramms
Mögliche Verwendungsszenarien
Aspose.Cells APIs haben die Klasse GlobalizationSettings freigelegt, um mit Szenarien umzugehen, in denen der Benutzer benutzerdefinierte Beschriftungen für Zwischensummen in einer Tabellenkalkulation verwenden möchte. Außerdem kann die Klasse GlobalizationSettings auch verwendet werden, um die Andere-Beschriftung für das Kreisdiagramm zu ändern, während das Arbeitsblatt oder das Diagramm gerendert wird.
Einführung in die GlobalizationSettings-Klasse
Die GlobalizationSettings Klasse bietet derzeit die folgenden 3 Methoden, die in einer benutzerdefinierten Klasse überschrieben werden können, um gewünschte Beschriftungen für die Zwischensummen zu erhalten oder benutzerdefinierten Text für die Andere-Beschriftung eines Kreisdiagramms zu rendern.
- GlobalizationSettings.getTotalName: Ruft den Gesamtnamen der Funktion ab.
- GlobalizationSettings.getGrandTotalName: Ruft den Gesamtsummen-Namen der Funktion ab.
- GlobalizationSettings.getOtherName: Ruft den Namen der “Andere”-Beschriftungen für Kreisdiagramme ab.
Benutzerdefinierte Beschriftungen für Zwischensummen
Die GlobalizationSettings Klasse kann verwendet werden, um die Zwischensummen-Beschriftungen anzupassen, indem die Methoden GlobalizationSettings.getTotalName & GlobalizationSettings.getGrandTotalName überschrieben werden, wie im Folgenden dargestellt.
// 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(); | |
} | |
} |
Um benutzerdefinierte Beschriftungen einzufügen, muss die Eigenschaft WorkbookSettings.GlobalizationSettings einem Exemplar der oben definierten CustomSettings-Klasse vor dem Hinzufügen der Zwischensummen auf dem Arbeitsblatt zugewiesen werden.
// 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"); |
Benutzerdefinierter Text für Andere Beschriftung im Kreisdiagramm
Die GlobalizationSettings Klasse bietet die Methode getOtherName, die nützlich ist, um der “Andere”-Beschriftung von Kreisdiagrammen einen benutzerdefinierten Wert zu geben. Der folgende Code definiert eine benutzerdefinierte Klasse und überschreibt die Methode getOtherName, um basierend auf der für JVM festgelegten Standardsprache eine benutzerdefinierte Beschriftung zu erhalten.
// 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(); | |
} | |
} |
Der folgende Code lädt eine vorhandene Tabellenkalkulation mit einem Kreisdiagramm und rendert das Diagramm zu einem Bild, während die erstellte CustomSettings-Klasse verwendet wird.
// 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()); |
Das folgende Bild zeigt das Ergebnis, wenn die Regionaleinstellung des Rechners auf Frankreich gesetzt ist. Wie Sie sehen können, wurde das Label “Other” gemäß der Definition in der Klasse CustomSettings in “Autre” übersetzt.