Utilisation de la classe ChartGlobalizationSettings pour définir différentes langues pour le composant graphique avec C++

Scénarios d’utilisation possibles

Les API d’Aspose.Cells ont exposé la classe ChartGlobalizationSettings afin de traiter les scénarios où l’utilisateur souhaite définir un composant de graphique dans une langue différente, notamment des étiquettes personnalisées pour les sous-totaux dans une feuille de calcul.

Introduction à la classe ChartGlobalizationSettings

La classe ChartGlobalizationSettings offre actuellement les 8 méthodes suivantes pouvant être surchargées dans une classe personnalisée pour traduire comme le nom de AxisTitle, le nom de AxisUnit, le nom de ChartTitle, etc., dans différentes langues.

  1. GetAxisTitleName : Obtient le nom du titre de l’axe.
  2. GetAxisUnitName : Obtient le nom de l’unité d’axe.
  3. GetChartTitleName : Obtient le nom du titre du graphique.
  4. GetLegendDecreaseName : Obtient le nom de la diminution pour la légende.
  5. GetLegendIncreaseName : Obtient le nom de l’augmentation pour la légende.
  6. GetLegendTotalName : Obtient le nom du total pour la légende.
  7. GetOtherName : Obtient le nom des étiquettes “Autre” pour le graphique.
  8. GetSeriesName : Obtient le nom des séries dans le graphique.

Traduction personnalisée

Voici, nous allons créer un graphique en cascade basé sur les données suivantes. Les noms des composants du graphique seront affichés en anglais dans le graphique. Nous utiliserons un exemple de langue turque pour montrer comment afficher le titre du graphique, les noms d’augmentation/diminution de la légende, le nom total et le titre de l’axe en turc.

todo:image_alt_text

Code d’exemple

Le code d’exemple suivant charge le fichier Excel d’exemple.

#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
using namespace Aspose::Cells::Charts;

class TurkeyChartGlobalizationSettings : public ChartGlobalizationSettings
{
public:
    TurkeyChartGlobalizationSettings() : ChartGlobalizationSettings() {}

    U16String GetChartTitleName() override
    {
        return u"Grafik Başlığı"; // Chart Title
    }

    U16String GetLegendIncreaseName() override
    {
        return u"Artış"; // Increase
    }

    U16String GetLegendDecreaseName() override
    {
        return u"Düşüş"; // Decrease
    }

    U16String GetLegendTotalName() override
    {
        return u"Toplam"; // Total
    }

    U16String GetAxisTitleName() override
    {
        return u"Eksen Başlığı"; // Axis Title
    }
};

void ChartGlobalizationSettingsTest()
{
    // Create an instance of existing Workbook
    U16String pathName = u"input.xlsx";
    Workbook workbook(pathName);

    // Set custom chartGlobalizationSettings, here is TurkeyChartGlobalizationSettings
    TurkeyChartGlobalizationSettings* globalizationSettings = new TurkeyChartGlobalizationSettings();
    workbook.GetSettings().GetGlobalizationSettings()->SetChartSettings(globalizationSettings);

    // Get the worksheet
    Worksheet worksheet = workbook.GetWorksheets().Get(0);

    // Load the chart from source worksheet
    ChartCollection chartCollection = worksheet.GetCharts();
    Chart chart = chartCollection.Get(0);

    // Chart Calculate
    chart.Calculate();

    // Get the chart title
    Title title = chart.GetTitle();

    // Output the name of the Chart title
    std::cout << "\nWorkbook chart title: " << title.GetText().ToUtf8() << std::endl;

    // Get the legend labels
    Vector<U16String> legendEntriesLabels = chart.GetLegend().GetLegendLabels();

    // Output the name of the Legend
    for (int i = 0; i < legendEntriesLabels.GetLength(); i++)
    {
        std::cout << "\nWorkbook chart legend: " << legendEntriesLabels[i].ToUtf8() << std::endl;
    }

    // Output the name of the Axis title
    Title categoryAxisTitle = chart.GetCategoryAxis().GetTitle();
    std::cout << "\nWorkbook category axis title: " << categoryAxisTitle.GetText().ToUtf8() << std::endl;

    delete globalizationSettings;
}

int main()
{
    Aspose::Cells::Startup();
    ChartGlobalizationSettingsTest();
    Aspose::Cells::Cleanup();
    return 0;
}

Sortie générée par le code d’exemple

Il s’agit de la sortie de la console du code d’exemple ci-dessus.

Workbook chart title: Grafik Başlığı

Workbook chart legend: Artış

Workbook chart legend: Düşüş

Workbook chart legend: Toplam

Workbook category axis tile: Eksen Başlığı