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.

  1. GlobalizationSettings.getTotalName: Hämtar totalnamnet för funktionen.
  2. GlobalizationSettings.getGrandTotalName: Hämtar det stora totalnamnet för funktionen.
  3. GlobalizationSettings.getOtherName: Hämtar namnet på “Other”-etiketter för cirkeldiagram.

Anpassade etiketter för subtotaler

Klassen GlobalizationSettings kan användas för att anpassa subtotalmärken genom att åsidosätta metoderna GlobalizationSettings.getTotalName och GlobalizationSettings.getGrandTotalName som demonstreras framåt.

// 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 som är användbar för att ge “Other”-etiketten för cirkeldiagram en anpassad etikett. Följande kodstycke definierar en anpassad klass och åsidosätter metoden getOtherName för att få en anpassad etikett baserat på standardspråket 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.

todo:image_alt_text