Использование класса GlobalizationSettings для пользовательских подписей и других меток в круговой диаграмме

Возможные сценарии использования

API Aspose.Cells предоставляет класс GlobalizationSettings для работы со сценариями, где пользователь хочет использовать настраиваемые метки для подытогов в электронной таблице. Более того, класс GlobalizationSettings можно использовать для изменения метки Другой для круговой диаграммы при рендеринге листа или диаграммы.

Введение в класс GlobalizationSettings

Класс GlobalizationSettings в настоящее время предлагает следующие 3 метода, которые могут быть переопределены в пользовательском классе для получения желаемых меток для подытогов или для визуализации пользовательского текста для метки Другие на круговой диаграмме.

  1. GlobalizationSettings.getTotalName: Получает общее имя функции.
  2. GlobalizationSettings.getGrandTotalName: Получает общее имя функции общего итога.
  3. GlobalizationSettings.getOtherName: Получает имя меток “Другие” для круговых диаграмм.

Пользовательские метки для итогов

Класс GlobalizationSettings используется для настройки меток итогов путем переопределения методов GlobalizationSettings.getTotalName и GlobalizationSettings.getGrandTotalName, как показано ниже.

// 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();
}
}

Для вставки пользовательских меток необходимо назначить свойство WorkbookSettings.GlobalizationSettings экземпляру класса CustomSettings до добавления подитогов в лист.

// 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");

Пользовательский текст для метки “Другие” круговой диаграммы

Класс GlobalizationSettings предлагает метод getOtherName, который полезен для задания пользовательского значения метки “Другие” круговых диаграмм. Приведенный ниже фрагмент определяет пользовательский класс и переопределяет метод getOtherName для получения пользовательской метки на основе языка, установленного по умолчанию для 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();
}
}

Приведенный ниже фрагмент загружает существующую электронную таблицу, содержащую круговую диаграмму, и рендерит диаграмму в изображение с использованием созданного выше класса CustomSettings.

// 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());

Ниже приведено полученное изображение в случае, когда локализация компьютера установлена на Францию. Как видите, метка “Другие” была переведена как “Autre”, как определено в классе CustomSettings.

todo:image_alt_text