我现在用的是aspose.words for Java 21正式版,因为某些功能旧版本不能满足,打算升级到23版本。
测试的时候,发现23版本ChartDataLabelCollection.add方法没有了,应该如何向series里添加ChartDataLabel
//aspose.words 21版本设置ChartDataLabel格式
ChartDataLabelCollection dataLabelCollection = chart.getSeries().get(0).getDataLabels();
chart.getSeries().clear();
chart.getSeries().add(xxx, categories, values);
ChartDataLabelCollection dataLabelCollection1 = chart.getSeries().get(index).getDataLabels();
for(int i=0;i<categories.length;i++){
ChartDataLabel chartDataLabel = dataLabelCollection1.add(i);
chartDataLabel.setShowPercentage(dataLabelCollection.getShowPercentage());//百分比
chartDataLabel.setShowLeaderLines(dataLabelCollection.getShowLeaderLines());//引导线
chartDataLabel.setShowCategoryName(dataLabelCollection.getShowCategoryName());//类别名称
chartDataLabel.setShowSeriesName(dataLabelCollection.getShowSeriesName());//系列名称
chartDataLabel.setShowValue(dataLabelCollection.getShowValue());//值
chartDataLabel.setShowDataLabelsRange(dataLabelCollection.getShowDataLabelsRange());//数据标签范围
chartDataLabel.setShowBubbleSize(dataLabelCollection.getShowBubbleSize());//显示气泡大小
chartDataLabel.setShowLegendKey(dataLabelCollection.getShowLegendKey());//显示图例键
chartDataLabel.setSeparator(dataLabelCollection.getSeparator());//分隔符
}
@SalesDhorde, 是的,API 已更改,添加方法已过时。 现在您需要将 ChartSeries.hasDataLabels()
设置为 true,如下例所示:
ChartDataLabelCollection dataLabelCollection = chart.getSeries().get(0).getDataLabels();
chart.getSeries().clear();
String[] categories = new String[] {"AW0", "AW1", "AW2" };
ChartSeries series0 = chart.getSeries().add("Series 0", categories, new double[] { 2.5, 1.5, 3.5 });
series0.hasDataLabels(true);
for (int i = 0 ; i < categories.length; i++) {
ChartDataLabel chartDataLabel = series0.getDataLabels().get(i);
chartDataLabel.setShowPercentage(dataLabelCollection.getShowPercentage());//百分比
chartDataLabel.setShowLeaderLines(dataLabelCollection.getShowLeaderLines());//引导线
chartDataLabel.setShowCategoryName(dataLabelCollection.getShowCategoryName());//类别名称
chartDataLabel.setShowSeriesName(dataLabelCollection.getShowSeriesName());//系列名称
chartDataLabel.setShowValue(dataLabelCollection.getShowValue());//值
chartDataLabel.setShowDataLabelsRange(dataLabelCollection.getShowDataLabelsRange());//数据标签范围
chartDataLabel.setShowBubbleSize(dataLabelCollection.getShowBubbleSize());//显示气泡大小
chartDataLabel.setShowLegendKey(dataLabelCollection.getShowLegendKey());//显示图例键
chartDataLabel.setSeparator(dataLabelCollection.getSeparator());//分隔符
}
请参阅我们的文档以获取更多示例:
感谢,问题已经解决,但是现在遇到了新问题:
aspose.words for Java 23.2试用版版本,设置数据书签字体和颜色不生效,代码如下
ChartDataLabelCollection dataLabelCollection = chart.getSeries().get(0).getDataLabels();
chart.getSeries().clear();
String[] categories = new String[] {"AW0", "AW1", "AW2" };
ChartSeries series0 = chart.getSeries().add("Series 0", categories, new double[] { 2.5, 1.5, 3.5 });
series0.hasDataLabels(true);
for (int i = 0 ; i < categories.length; i++) {
ChartDataLabel chartDataLabel = series0.getDataLabels().get(i);
chartDataLabel.getFont().setColor(Color.RED);
chartDataLabel.getFont().setSize(15);
}
@SalesDhorde, 感谢您报告此问题。 我们已经在我们的内部问题跟踪系统中打开了以下新工单,并将根据 免费支持政策 中提到的条款提供它们的修复:
Issue ID(s): WORDSNET-25711
如果您需要优先支持以及直接联系我们的付费支持管理团队,您可以获得 付费支持服务。
The issues you have found earlier (filed as WORDSNET-25711) have been fixed in this Aspose.Words for Java 23.8 update.