Aspose.Cells for Java グラフの値の抽出について

Excel上にあるグラフの値を抽出したいと考えています。
以下のサンプルデータのグラフで使用されている値を抽出する方法はありますでしょうか。

使用バージョン:Aspose.Cells for Java 18.2.
サンプルデータ:graph.zip (11.5 KB)

以上、お手数おかけしますが、
ご確認の程よろしくお願いいたします。

@yudai_yamaguchi

グラフのポイント値は外部データに依存しているため、グラフポイント値を抽出できませんでした。 ただし、グラフデータに関する情報の一部は、提供されたExcelファイル内に存在し、その内容を抽出するために使用される可能性があります。

この問題は次のように記録されています。

  • CELLSJAVA-42544 - Unable to extract the Chart - Series - Chart Point - Data Labels Values because of External Data

チケット作成のご対応ありがとうございました。
以上、よろしくお願いいたします。

@yudai_yamaguchi

値を抽出するには、次のコードを使用してください。 このコードのConsole Outputもご覧ください。

Java

Workbook workbook = new Workbook(dirPath + "graph.XLSX");

Worksheet worksheet = workbook.getWorksheets().get("Sheet1");
Chart c = worksheet.getCharts().get(0);

c.calculate();

SeriesCollection nSeries = c.getNSeries();
int seriesCount = nSeries.getCount();
for (int i = 0; i < seriesCount; i++) {
	Series seires = nSeries.get(i);
	ChartPointCollection points = seires.getPoints();
	int pointsCount = points.getCount();
	for (int j = 0; j < pointsCount; j++) {
		ChartPoint point = points.get(j);
		System.out.println("Point " + j + " Value of series " + i
				+ " : " + point.getYValue());
	}

	System.out.println("-----------------------------------------");
}//for

Console Output

Point 0 Value of series 0 : 1.0
Point 1 Value of series 0 : 2.0
Point 2 Value of series 0 : 3.0
Point 3 Value of series 0 : 4.0
Point 4 Value of series 0 : 5.0
-----------------------------------------
Point 0 Value of series 1 : 6.0
Point 1 Value of series 1 : 7.0
Point 2 Value of series 1 : 8.0
Point 3 Value of series 1 : 9.0
Point 4 Value of series 1 : 10.0

グラフの値を抽出することができました。
ご対応ありがとうございました。

また、グラフについてお伺いしたいことがあります。
下記のテストデータにあるようなグラフの系列名を抽出することは可能でしょうか。

使用バージョン:Aspose.Cells for Java 18.2.
サンプルデータ:graph.zip (28.8 KB)

以上、お手数おかけしますが、
ご確認の程よろしくお願いいたします。

@yudai_yamaguchi

ChartPoint.getXValue()メソッドを必要に応じて使用してください。 上記のコードに次の行を追加してください

System.out.println("Point " + j + " Value of series " + i + " : " + point.getXValue());

Console Output

Point 0 Value of series 0 : 1.0
Point 1 Value of series 0 : 2.0
Point 2 Value of series 0 : 3.0
Point 3 Value of series 0 : 4.0
Point 4 Value of series 0 : 5.0
Point 5 Value of series 0 : 6.0
Point 6 Value of series 0 : 7.0

度々お尋ねしてしまい申し訳ございません。

xの値ではなく、下記のサンプルデータにあるようなグラフの系列名を抽出することは可能でしょうか。
サンプルデータから"A B C D E”というテキストを抽出したいです。

サンプルデータ:graph_series_name.zip (13.7 KB)

以上、お手数おかけしますが、
ご確認の程よろしくお願いいたします。

@yudai_yamaguchi

この機能は利用できないようですので、評価と実装のためにこの問題をデータベースに記録しました。 一度、私たちはあなたのためにいくつかのニュースを持って、我々はできるだけ早くあなたを更新します。

この問題は次のように記録されています。

  • CELLSJAVA-42558 - Unable to access Horizontal Category Axis Labels Items

チケット作成のご対応ありがとうございました。
以上、よろしくお願いいたします。

@yudai_yamaguchi,

これはあなたの問題(以前は "CELLSJAVA - 42558"と記録されていました)をお知らせするためです。 QAを実施し、その他の機能強化や修正を加えた後は、間もなく固定版をご提供します。

この修正が公開されたら、ここでダウンロードリンクを共有します。

問題を解決していただき、ありがとうございました。

The issues you have found earlier (filed as CELLSJAVA-42558) have been fixed in this Aspose.Cells for Java 18.3 update. Please also check the <a href="Installation|Documentation

The issues you have found earlier (filed as CELLSJAVA-42558) have been fixed in this Aspose.Cells for Java 18.3 update. Please also check the document for your reference: Installation|Documentation

@yudai_yamaguchi

Aspose APIを使用していただきありがとうございます。

Aspose.Cells for Java 18.3の新しいバージョンで次のコードを使用してください。

Java

//Access the first chart
Chart chart = worksheet.getCharts().get(0) ;

//Calculate the chart
chart.calculate();

//Access the axis labels
ArrayList lst = chart.getCategoryAxis().getAxisLabels();

問題を解決していただきありがとうございました。
Aspose.Cells for Java 18.3で系列名が抽出されることを確認しました。

しかし、同じ処理をxls形式のファイルで行った場合、抽出結果がnullになってしまいました。
この問題を回避する方法はありますでしょうか。

使用バージョン:Aspose.Cells for Java 18.3
サンプルデータ:graph2.zip (9.2 KB)

お手数おかけしますが、ご確認の程よろしくお願いいたします。

@yudai_yamaguchi,

テンプレートXLSファイルをありがとう。

テンプレートXLSファイルで次のサンプルコードを使用して、前述の問題を再現できます。

Workbook workbook = new Workbook("f:\\files\\graph2.xls");
Worksheet worksheet = workbook.getWorksheets().get(0);

//Access the first chart
Chart chart = worksheet.getCharts().get(0) ;

//Calculate the chart
chart.calculate();

//Access the axis labels
ArrayList lst = chart.getCategoryAxis().getAxisLabels();
System.out.println(lst.size());//NullPointerException

問題は次のように記録されます。

CELLSJAVA-42569 - Unable to access Horizontal Category Axis Labels Items of Chart in XLS

チケット作成のご対応ありがとうございました。
以上、よろしくお願いいたします。

@yudai_yamaguchi,

少し時間を割いてください。 私たちはすぐに問題を解決しようとします。

新しい情報を入手したら、それをあなたと共有してください。

@yudai_yamaguchi,

あなたの問題が ""解決されたことをお知らせいたします。 QAを実施し、その他の拡張機能や修正を組み込んだ後、すぐに修正プログラムを提供します。

問題を解決していただき、ありがとうございました。