Användning av klassen GlobalizationSettings för anpassade subtotalmärken och andra märken för cirkeldiagram
Möjliga användningsscenario
Aspose.Cells API:er har exponerat klassen GlobalizationSettings för att hantera scenarier där användaren vill använda anpassade etiketter för subtotaler i ett kalkylblad. Dessutom kan klassen GlobalizationSettings också användas för att modifiera Other-etiketten för cirkeldiagrammet vid rendering av kalkylbladet eller diagrammet.
Introduktion till klassen GlobalizationSettings
Klassen GlobalizationSettings erbjuder för närvarande följande 3 metoder som kan åsidosättas i en anpassad klass för att få önskade etiketter för subtotaler eller för att rendera anpassad text för Other-etiketten för ett cirkeldiagram.
- GlobalizationSettings.getTotalName: Hämtar det totala namnet för funktionen.
- GlobalizationSettings.getGrandTotalName: Hämtar det sammanlagda namnet för funktionen.
- GlobalizationSettings.getOtherName: Hämtar namnet på “Other”-etiketter för tårtdiagram.
Anpassade etiketter för subtotaler
Klassen GlobalizationSettings kan användas för att anpassa delbelappen genom att åsidosätta metoderna GlobalizationSettings.getTotalName och GlobalizationSettings.getGrandTotalName som demonstreras nedan.
// 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(); | |
} | |
} |
För att injicera anpassade etiketter är det nödvändigt att tilldela egenskapen WorkbookSettings.GlobalizationSettings till en instans av klassen för Anpassade inställningar som definieras ovan innan du lägger till subtotaler i kalkylarket.
// 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"); |
Anpassad text för annan etikett för cirkeldiagram
Klassen GlobalizationSettings erbjuder metoden getOtherName vilket är användbart för att ge “Other”-etiketten för tårtdiagram ett anpassat värde. Följande kod definierar en anpassad klass och åsidosätter metoden getOtherName för att få en anpassad etikett baserad på det standard språk som är inställt för 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(); | |
} | |
} |
Följande kodstycke laddar ett befintligt kalkylblad som innehåller ett cirkeldiagram och renderar diagrammet till en bild med hjälp av klassen Anpassade inställningar som skapats ovan.
// 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()); |
Följande är den resulterande bilden när landets lokalisering är inställd på Frankrike. Som du kan se har etiketten “Other” översatts till “Autre” enligt definitionen i Anpassade inställningar klassen.