我想获取图表的 x、y、宽度、高度、标题等信息。这是我的 HSSFChart 版本(它返回非零值):
HSSFChart chart
title = chart.getChartTitle();
x = chart.getChartX();
y = chart.getChartY();
width = chart.getChartWidth();
height = chart.getChartHeight();
问题是我无法从 XSSFChart 获得相同或任何其他信息。
XSSFDrawing drawing = sheet.createDrawingPatriarch();
List<XSSFChart> chartsList = drawing.getCharts();
for (XSSFChart chart : chartsList){
#ctChart
CTChart ctChart = chart.getCTChart();
CTPlotArea plotArea = ctChart.getPlotArea();
title = ctChart.getTitle.toString();
int size = plotArea.getScatterChartList().size();
for (int j = 0; j < size; j++){
List<CTScatterSer> seriesList = plotArea.getScatterChartList().get(j).getSerList();
for (int i = 0; i < seriesList.size(); i++){
CTScatterSer ser = seriesList.get(i);
XmlObject serieX = ser.getXVal();
XmlObject serieY = ser.getYVal();
System.out.println("x: " + serieX.xmlText() + " y: " + serieY.xmlText());
}
}
if (plotArea.getLayout() != null)
if (plotArea.getLayout().getManualLayout() != null)
System.out.println("x: " + plotArea.getLayout().getManualLayout().getX() + " y: " +
plotArea.getLayout().getManualLayout().getY());
#chart
chart.getManualLayout().getX(); // returns 0
chart.getManualLayout().getY(); // returns 0
chart.getManualLayout().getHeightRatio(); // returns 0.0
chart.getManualLayout().getWidthRatio(); // returns 0.0
即使有很多图表和系列,它也不会打印任何内容。