gpt4 book ai didi

java - 系列 setTitle 的 apache-poi 4.0 NullPointer

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:07:17 27 4
gpt4 key购买 nike

Exception in thread "main" java.lang.NullPointerException at org.apache.poi.xddf.usermodel.chart.XDDFChartData$Series.setTitle(XDDFChartData.java:122)

代码如下:

CellReference cellref = new CellReference("A6"); 

//A6 value = "My Title"

XDDFLineChartData.Series series3 = (XDDFLineChartData.Series)data.addSeries(xs, ys3);
series3.setMarkerSize((short) 6);
series3.setMarkerStyle(MarkerStyle.DIAMOND);

series3.setTitle("My Title",cellref);

我检查了文档,arg0 需要一个字符串,arg1 需要一个CellReference

我总是以 NullPointerException 结束。我错过了什么吗??

感谢您的回复。

最佳答案

回答如何修复 XDDFChartData.Series.setTitle 中的错误的问题:

XDDFChartData.Series.setTitle getSeriesText() 的使用没有空检查。但是XDDFLineChartData.Series.getSeriesText()当然可能会返回 null,因为 series.getTx() 可能会返回 null。所以我们需要确保在使用 XDDFChartData.Series.setTitle 之前已经有一系列文本元素。

...
XSSFChart chart = drawing.createChart(anchor);
...
XDDFCategoryAxis bottomAxis = chart.createCategoryAxis(AxisPosition.BOTTOM);
XDDFValueAxis leftAxis = chart.createValueAxis(AxisPosition.LEFT);
...
XDDFChartData data = chart.createData(ChartTypes.LINE, bottomAxis, leftAxis);
data.addSeries(...);
data.addSeries(...);
chart.plot(data);

if (chart.getCTChart().getPlotArea().getLineChartArray(0).getSerArray(0).getTx() == null)
chart.getCTChart().getPlotArea().getLineChartArray(0).getSerArray(0).addNewTx();
data.getSeries().get(0).setTitle("Series 1 Title", null);

if (chart.getCTChart().getPlotArea().getLineChartArray(0).getSerArray(1).getTx() == null)
chart.getCTChart().getPlotArea().getLineChartArray(0).getSerArray(1).addNewTx();
data.getSeries().get(1).setTitle("Series 2 Title", null);
...
//setting the axis Ids to the LineChart
chart.getCTChart().getPlotArea().getLineChartArray(0).addNewAxId().setVal(bottomAxis.getId());
chart.getCTChart().getPlotArea().getLineChartArray(0).addNewAxId().setVal(leftAxis.getId());
...

关于java - 系列 setTitle 的 apache-poi 4.0 NullPointer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53059428/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com