Usar la Clase GlobalizationSettings para Etiquetas de Subtotal Personalizadas y Otra Etiqueta de Gráfico de Sectores

Escenarios de uso posibles

Las API de Aspose.Cells han expuesto la clase GlobalizationSettings para manejar los escenarios en los que el usuario desea usar etiquetas personalizadas para los Subtotales en una hoja de cálculo. Además, la clase GlobalizationSettings también se puede usar para modificar la etiqueta Otros para el gráfico circular al renderizar la hoja de cálculo o el gráfico.

Introducción a la Clase Configuración Global

La clase GlobalizationSettings actualmente ofrece los siguientes 3 métodos que se pueden anular en una clase personalizada para obtener etiquetas deseadas para los Subtotales o para renderizar texto personalizado para la etiqueta Otros de un gráfico circular.

  1. GlobalizationSettings.GetTotalName: Obtiene el nombre total de la función.
  2. GlobalizationSettings.GetGrandTotalName: Obtiene el nombre del total general de la función.
  3. GlobalizationSettings.GetOtherName: Obtiene el nombre de las etiquetas “Otros” para gráficos circulares.

Etiquetas Personalizadas para Subtotales

La clase GlobalizationSettings se puede usar para personalizar las etiquetas de los Subtotales anulando los métodos GlobalizationSettings.GetTotalName y GlobalizationSettings.GetGrandTotalName como se demuestra a continuación.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Defines a custom class derived from GlobalizationSettings class
class CustomSettings : GlobalizationSettings
{
// Overrides the GetTotalName method
public override string GetTotalName(ConsolidationFunction functionType)
{
// Checks the function type used to add the subtotals
switch (functionType)
{
// Returns custom value based on the function type used to add the subtotals
case ConsolidationFunction.Average:
return "AVG";
// Handle other cases as per requirement
default:
return base.GetTotalName(functionType);
}
}
// Overrides the GetGrandTotalName method
public override string GetGrandTotalName(ConsolidationFunction functionType)
{
// Checks the function type used to add the subtotals
switch (functionType)
{
// Returns custom value based on the function type used to add the subtotals
case ConsolidationFunction.Average:
return "GRD AVG";
// Handle other cases as per requirement
default:
return base.GetGrandTotalName(functionType);
}
}
}

Para inyectar etiquetas personalizadas, es necesario asignar la propiedad WorkbookSettings.GlobalizationSettings a una instancia de la clase Configuración Personalizada definida anteriormente antes de agregar los Subtotales a la hoja de cálculo.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// 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.Settings.GlobalizationSettings = new CustomSettings();
// Accesses the 1st worksheet from the collection which contains data resides in the cell range A2:B9
Worksheet sheet = book.Worksheets[0];
// Adds Subtotal of type Average to the worksheet
sheet.Cells.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 + "output_out.xlsx");

Texto Personalizado para Otra Etiqueta del Gráfico Circular

La clase GlobalizationSettings ofrece el método GetOtherName que es útil para darle un valor personalizado a la etiqueta “Otros” de los gráficos circulares. El siguiente fragmento de código define una clase personalizada y anula el método GetOtherName para obtener una etiqueta personalizada basada en el identificador de la cultura del sistema.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// Defines a custom class inherited by GlobalizationSettings class
class GlobalCustomSettings : ChartGlobalizationSettings
{
// Overrides the GetOtherName method
public override string GetOtherName()
{
// Gets the culture identifier for the current system
int lcid = System.Globalization.CultureInfo.CurrentCulture.LCID;
switch (lcid)
{
// Handles case for English
case 1033:
return "Other";
// Handles case for French
case 1036:
return "Autre";
// Handles case for German
case 1031:
return "Andere";
// Handle other cases
default:
return base.GetOtherName();
}
}
}

El siguiente fragmento de código carga una hoja de cálculo existente que contiene un gráfico circular y renderiza el gráfico a una imagen utilizando la clase Configuración Personalizada creada anteriormente.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
// 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.Settings.GlobalizationSettings.ChartSettings = new GlobalCustomSettings();
// Accesses the 1st worksheet from the collection which contains pie chart
Worksheet sheet = book.Worksheets[0];
// Accesses the 1st chart from the collection
Chart chart = sheet.Charts[0];
// Refreshes the chart
chart.Calculate();
// Renders the chart to image
chart.ToImage(dataDir + "output_out.png", new ImageOrPrintOptions());