Uso de la clase GlobalizationSettings para etiquetas de subtotales personalizadas y otras etiquetas de gráficos circulares

Posibles escenarios de uso

Aspose.Cells Las API han expuesto elConfiguración de globalizaciónclass para manejar los escenarios en los que el usuario desea utilizar etiquetas personalizadas para subtotales en una hoja de cálculo. Además, elConfiguración de globalización La clase también se puede utilizar para modificar laOtro etiqueta para el gráfico circular al renderizar la hoja de trabajo o el gráfico.

Introducción a la clase GlobalizationSettings

ÉlConfiguración de globalización Actualmente, la clase ofrece los siguientes 3 métodos que se pueden anular en una clase personalizada para obtener las etiquetas deseadas para los Subtotales o para representar texto personalizado para elOtro etiqueta de un gráfico circular.

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

Etiquetas personalizadas para subtotales

ÉlConfiguración de globalizaciónLa clase se puede utilizar para personalizar las etiquetas de subtotal anulando elGlobalizationSettings.GetTotalName & GlobalizationSettings.GetGrandTotalNamemétodos como se demuestra más adelante.

// 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 poder inyectar etiquetas personalizadas, se requiere asignar elWorkbookSettings.GlobalizationSettings propiedad a una instancia de laAjustes personalizadosdefinida anteriormente antes de agregar los subtotales a la hoja de trabajo.

// 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 de gráfico circular

ÉlConfiguración de globalización ofertas de clasesObtenerOtroNombremétodo que es útil para dar a la etiqueta “Otro” de los gráficos circulares un valor personalizado. El siguiente fragmento define una clase personalizada y anula laObtenerOtroNombremétodo para obtener una etiqueta personalizada basada en el identificador cultural 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 carga una hoja de cálculo existente que contiene un gráfico circular y representa el gráfico en una imagen mientras utiliza elAjustes personalizadosclase 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());