【Aspose.Cell】xls形式のグラフを画像変換した際の縦軸の表示について

Aspose.Cellを使用しxls形式のファイルをPDF化しています。
使用環境はvb.net2022、Aspose.cell23.2.0です。
グラフの参照元データはPDFに不要なため、画像化して貼り付けようとしていますが
軸の表示設定が無視され画像変換されてしまいます。

サンプルを添付しますので確認いただけますでしょうか。

test.xlsのグラフ1の縦軸の軸の書式設定→表示単位を億にしています。
変換後の画像がtext.pngになります。

変換ロジックは下記
Dim wbwork As Workbook = New Workbook(baseFilePath + “test.xls”)
Dim chart As Aspose.Cells.Charts.Chart = wbwork.WorkSheets(0).Charts(0)
chart.ToImage(baseFilePath + “test.png”, ImageType.Png)

test.zip (12.8 KB)

@Kitamura
私たちはあなたの問題を再現し、内部問題追跡システムに登録しました。

@Kitamura,

あなたの問題は、ID「CELLSNET-52922」でデータベースに記録されたことに注意してください。

お客様の問題は解決いたしました。 この修正は、今週末までに予定されている今後のリリース (Aspose.Cells for .NET v23.3) に含まれる予定です。 新しいリリースが公開されると通知されます。

@Kitamura
あなたが期待している結果ファイルをあげてもいいですか。環境によって結果が異なるようです。

@simon.zhao
期待する結果としては添付済みのtest.pngの左に縦で表示されているところが
700000000 ではなく、7と表示されていることです。(text.xlsと同様の表示)

環境はwindows10、.NETFramework4.8となります。

@Kitamura
これは私の機械に表示された結果です。
chart_0_0.png (2.1 KB)

表示されているラベルはあなたのマシンと一致していますか?

@simon.zhao
軸ラベルの表示が違うようです。
simonさん提示のpngですとx10000000となっていますが、加工元のExcelだと億と日本語で表示されています。
test2.png (3.0 KB)

@Kitamura,

あなたの環境で表示されるスクリーンショットをありがとう。
さらに評価し、詳細をご連絡いたします。

@Kitamura
ChartGlobalizationSettings.GetAxisUnitName(DisplayUnitType type)を次のバージョンで再ロードする必要があります23.3

後で例をあげます。

The issues you have found earlier (filed as CELLSNET-52922) have been fixed in this update. This message was posted using Bugs notification tool by johnson.shi

@simon.zhao @amjad.sahi
23.3へアップデートし、正しくグラフが変換されることを確認しました。
ありがとうございます。

@Kitamura,
あなたの問題が解決して嬉しいです。何か問題があれば、いつでも私たちに連絡してください。

@Kitamura
ChartGlobalizationSettingsを継承して座標軸単位を設定しなければなりません。億として表示されるようになります 。

static void Main(string[] args)
        {  
Workbook workbook = new Workbook(dir + "test.xls");
            workbook.Settings.GlobalizationSettings.ChartSettings = new CustomChartGlobalizationSettings();
            workbook.Save(dir + "dest.html");
        }
        class CustomChartGlobalizationSettings: ChartGlobalizationSettings
        {
            //public override string GetChartTitleName()
            //{
            //    return "グラフ タイトル";
            //}
            public override string GetAxisUnitName(DisplayUnitType type)
            {
                switch (type)
                {
                    case DisplayUnitType.None:
                        return string.Empty;
                    case DisplayUnitType.Hundreds:
                        return "Hundreds";
                    case DisplayUnitType.Thousands:
                        return "Thousands";
                    case DisplayUnitType.TenThousands:
                        return "x 10000";
                    case DisplayUnitType.HundredThousands:
                        return "x 100000";
                    case DisplayUnitType.Millions:
                        return "Millions";
                    case DisplayUnitType.TenMillions:
                        return "x 10000000";
                    case DisplayUnitType.HundredMillions:
                        return "億";
                    case DisplayUnitType.Billions:
                        return "Billions";
                    case DisplayUnitType.Trillions:
                        return "Trillions";
                    default:
                        return string.Empty;
                }
            }
        }