Verwendung der GlobalizationSettings Klasse für benutzerdefinierte Teilergebnisbezeichnungen und andere Beschriftungen des Kuchendiagramms
Mögliche Verwendungsszenarien
Die Aspose.Cells-APIs haben die GlobalizationSettings-Klasse freigegeben, um mit Szenarien umzugehen, in denen der Benutzer benutzerdefinierte Bezeichnungen für Teilergebnisse in einer Tabellenkalkulation verwenden möchte. Außerdem kann die GlobalizationSettings-Klasse auch verwendet werden, um die Andere-Bezeichnung für das Kuchendiagramm beim Rendern des Arbeitsblatts oder Diagramms zu ändern.
Einführung in die GlobalizationSettings-Klasse
Die GlobalizationSettings-Klasse bietet derzeit die folgenden 3 Methoden, die in einer benutzerdefinierten Klasse überschrieben werden können, um gewünschte Bezeichnungen für die Teilergebnisse zu erhalten oder benutzerdefinierten Text für die Andere-Bezeichnung eines Kuchendiagramms zu rendern.
- GlobalizationSettings.GetTotalName: Gibt den Gesamtwertnamen der Funktion zurück.
- GlobalizationSettings.GetGrandTotalName: Gibt den Gesamtergebnisnamen der Funktion zurück.
- GlobalizationSettings.GetOtherName: Ruft den Namen der “Andere”-Beschriftungen für Kreisdiagramme ab.
Benutzerdefinierte Beschriftungen für Zwischensummen
Die Klasse GlobalizationSettings kann verwendet werden, um die Zwischensummenbeschriftungen anzupassen, indem die Methoden GlobalizationSettings.GetTotalName & GlobalizationSettings.GetGrandTotalName wie weiter unten dargestellt überschrieben werden.
// 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); | |
} | |
} | |
} |
Um benutzerdefinierte Beschriftungen einzufügen, muss die Eigenschaft WorkbookSettings.GlobalizationSettings einer Instanz der oben definierten CustomSettings-Klasse zugewiesen werden, bevor die Zwischensummen zum Arbeitsblatt hinzugefügt werden.
// 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"); |
Benutzerdefinierter Text für Andere Beschriftung im Kreisdiagramm
Die Klasse GlobalizationSettings bietet eine Methode GetOtherName, die nützlich ist, um der “Andere”-Beschriftung von Kreisdiagrammen einen benutzerdefinierten Wert zu geben. Der folgende Code definiert eine benutzerdefinierte Klasse und überschreibt die Methode GetOtherName, um eine benutzerdefinierte Beschriftung basierend auf dem Kulturkennzeichen des Systems zu erhalten.
// 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(); | |
} | |
} | |
} |
Der folgende Code lädt ein vorhandenes Tabellenblatt, das ein Kreisdiagramm enthält, und rendert das Diagramm zu einem Bild unter Verwendung der zuvor erstellten CustomSettings-Klasse.
// 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()); |