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
Class Libraries & REST APIs for the developers to manipulate & process Files from Word, Excel, PowerPoint, Visio, PDF, CAD & several other categories in Web, Desktop or Mobile apps. Develop & deploy on Windows, Linux, MacOS &...
後で例をあげます。
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;
}
}
}