我得到java.lang.illegalstateexception:类别和值必须具有相同的点计数。我在下面的代码中遗漏了什么?谢谢。
XDDFDataSource<String> cat = XDDFDataSourcesFactory.fromStringCellRange(sheet,
new CellRangeAddress(0, 0, 0, 1));
XDDFNumericalDataSource<Double> val = XDDFDataSourcesFactory.fromNumericCellRange(sheet,
new CellRangeAddress(1, 6, 0, 1));
XDDFChartData chartData = chart.createData(ChartTypes.PIE, null,
null);
chartData.setVaryColors(true);
chartData.addSeries(cat, val);
chart.plot(chartData);
illegalstateexception:类别和值必须具有相同的点计数。在org.apache.poi.xddf.usermodel.chart.xddfchartdata$series.replacedata(xddfchartdata)上。java:170)在org.apache.poi.xddf.usermodel.chart.xddfchartdata$series。java:161)在org.apache.poi.xddf.usermodel.chart.xddfpiechartdata$series。java:107)在org.apache.poi.xddf.usermodel.chart.xddfpiechartdata.addseries(xddfpiechartdata)。java:97)
1条答案
按热度按时间ndasle7k1#
错误很明显。有关构造函数参数的含义,请参见cellrangeaddress。
所以你的
cat
数据源从第0行到第0行,从第0列到第1列。就是这样A1:B1
. 但是你的val
数据源是从第1行到第6行,从第0列到第1列。就是这样A2:B7
. 所以呢cat
数据源包含2个单元格,但val
数据源包含12个单元格。根据你的屏幕截图
Excel
表,应该是:就是这样
cat
数据源A2:A6
以及val
数据源B2:B6
.