C++を使用してChartGlobalizationSettingsクラスを使い、チャートコンポーネントの異なる言語を設定する方法

可能な使用シナリオ

Aspose.CellsのAPIは、ユーザーがチャートコンポーネントを異なる言語に設定したい場合に取り扱うために、ChartGlobalizationSettingsクラスを公開しています。スプレッドシート内の小計のカスタムラベル。

ChartGlobalizationSettingsクラスの紹介

ChartGlobalizationSettingsクラスは、現在、カスタムクラスでオーバーライドできる次の8つのメソッドを提供しています。これにより、軸タイトル名、軸単位名、チャイトル名などを異なる言語に翻訳できます。

  1. GetAxisTitleName:軸タイトルの名前を取得します。
  2. GetAxisUnitName:軸単位の名前を取得します。
  3. GetChartTitleName:チャートタイトルの名前を取得します。
  4. GetLegendDecreaseName:凡例の減少の名前を取得します。
  5. GetLegendIncreaseName:凡例の増加の名前を取得します。
  6. GetLegendTotalName:凡例の合計の名前を取得します。
  7. GetOtherName:チャートの「その他」ラベルの名前を取得します。
  8. GetSeriesName:チャート内の系列の名前を取得します。

カスタム言語の翻訳

以下、次のデータを元にウォーターフォールチャートを作成します。チャートコンポーネントの名前は、チャート内で英語で表示されます。チャートタイトル、凡例の増減名、合計名、および軸タイトルのトルコ語表示方法を示すためにトルコ語の例を使用します。

todo:image_alt_text

サンプルコード

次のサンプルコードは、サンプルExcelファイルを読み込みます。

#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;
}

サンプルコードによって生成された出力

これは上記のサンプルコードのコンソール出力です。

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ığı