Apache的POI添加一个系列名称为线型图 [英] Apache POI add a Series name into LineChart
问题描述
我创建的Excel文档中使用Apache POI的线型图。至于我已经成功实现的是下面的图片中:
I am creating a LineChart using Apache POI in Excel document. As far as I've managed to achieve is in the below image:
我写了使用的例子来自Apache的SVN的code,所以我目前的做法是这样的:
I wrote the code using examples from Apache's svn, so my current approach looks like this:
Drawing drawing = question.createDrawingPatriarch();
ClientAnchor anchor = drawing.createAnchor(0, 0, 0, 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, 8, 0, 1));
for (int i = 9; i <= rowNum; i ++) {
ChartDataSource<Number> ys = DataSources.fromNumericCellRange(question, new CellRangeAddress(i, i, 0, 1));
data.addSerie(xs, ys);
}
chart.plot(data, bottomAxis, leftAxis);
我找不到是如何得到默认的系列1,系列2,...,N系列
的名称是从取从列我的价值观,在这种情况下,从答案选项。而且似乎没有为当前API中的任何方法如何指定系列的名称。
What I can't find is how to get default "Series 1", "Series 2", ..., "Series n"
names to be taken from as my values from the columns, in this case from: "Answer options". And there doesn't seem to be any methods in the current API how to specify names of the series.
谁能帮我这个好吗?
推荐答案
这是pretty简单明了,只是,而不是使用:
It was pretty straighforward, just instead of using:
data.addSerie(xs, ys);
我不得不使用
LineChartSerie chartSerie = data.addSerie(xs, ys);
chartSerie.setTitle("My Title");
没看,使用 data.addSerie(XS,YS)的API;
返回一个 LineChartSerie
对象上,我可以设置一个标题。
Didn't look at the API that using data.addSerie(xs, ys);
returns a single LineChartSerie
object onto which I can set a title.
这篇关于Apache的POI添加一个系列名称为线型图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!