java – Apache POI将一个系列名称添加到LineChart中
发布时间:2020-12-14 06:02:19 所属栏目:Java 来源:网络整理
导读:我正在Excel文档中使用Apache POI创建一个LineChart.据我所设想的,在下图中: 我使用Apache的svn中的示例编写了代码,所以我目前的方法看起来像这样: Drawing drawing = question.createDrawingPatriarch();ClientAnchor anchor = drawing.createAnchor(0,4,
我正在Excel文档中使用Apache POI创建一个LineChart.据我所设想的,在下图中:
我使用Apache的svn中的示例编写了代码,所以我目前的方法看起来像这样: Drawing drawing = question.createDrawingPatriarch(); ClientAnchor anchor = drawing.createAnchor(0,4,8,14,18); Chart chart = drawing.createChart(anchor); ChartLegend legend = chart.getOrCreateLegend(); legend.setPosition(LegendPosition.TOP_RIGHT); LineChartData data = chart.getChartDataFactory().createLineChartData(); ChartAxis bottomAxis = chart.getChartAxisFactory().createCategoryAxis(AxisPosition.BOTTOM); bottomAxis.setCrosses(AxisCrosses.AUTO_ZERO); ValueAxis leftAxis = chart.getChartAxisFactory().createValueAxis(AxisPosition.LEFT); leftAxis.setCrosses(AxisCrosses.AUTO_ZERO); List<ReportQuestionModel> questionModels = groupModel.getQuestionModels(); for (ReportQuestionModel questionModel : questionModels) { List<ReportOptionModel> optionModels = questionModel.getOptionModels(); for (ReportOptionModel optionModel : optionModels) { rowNum++; XSSFRow optionRow = question.createRow(rowNum); XSSFCell optionsCell = optionRow.createCell(0); optionsCell.setCellValue(optionModel.getAnswerText()); long count = optionModel.getCount(); totalResponses += count; XSSFCell optionsCountCell = optionRow.createCell(1); optionsCountCell.setCellValue(count); XSSFCell optionsPercentageCell = optionRow.createCell(2); optionsPercentageCell.setCellValue(optionModel.getPercentage()); } } ChartDataSource<Number> xs = DataSources.fromNumericCellRange(question,new CellRangeAddress(8,1)); for (int i = 9; i <= rowNum; i ++) { ChartDataSource<Number> ys = DataSources.fromNumericCellRange(question,new CellRangeAddress(i,i,1)); data.addSerie(xs,ys); } chart.plot(data,bottomAxis,leftAxis); 我找不到的是如何从列中获取默认的“系列1”,“系列2”,…,“系列n”名称作为我的值,在这种情况下是从“答案选项” .而目前的API中似乎没有任何方法来指定系列的名称. 有人可以帮我吗? 解决方法
这是非常直截了当的,而不是使用:
data.addSerie(xs,ys); 我不得不使用: LineChartSerie chartSerie = data.addSerie(xs,ys); chartSerie.setTitle("My Title"); 没有看到使用data.addSerie(xs,ys)的API;返回一个可以设置标题的LineChartSerie对象. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |