【发布时间】:2020-10-13 08:40:58
【问题描述】:
我在互联网上进行了一些搜索(以及代码检查),但似乎找不到我要找的东西......
我的工作: 我正在一个工作正常的 Excel 中创建一个饼图,除了百分比值显示为小数点后很多位:
我在生成的 Excel 中进行了一些操作,如果我可以通过编程方式访问“类别”- Numbers 属性会有所帮助:
在我的代码中,我已经尝试设置数字格式,这对我没有任何改变:
public void createPieChartInSheet(Workbook wb, XSSFDrawing drawing, String chartTitle, XSSFClientAnchor anchor, LinkedList<Triple<String, XDDFDataSource<String>, XDDFNumericalDataSource<Double>>> chartSeries, LinkedList<byte[]> colorScheme) {
XSSFChart chart = drawing.createChart(anchor);
chart.setTitleText(chartTitle);
chart.setTitleOverlay(false);
XDDFDataSource<String> cat = chartSeries.get(0).getMiddle();
XDDFNumericalDataSource<Double> val = chartSeries.get(0).getRight();
XDDFChartData data = chart.createData(ChartTypes.PIE, null, null);
Series series = data.addSeries(cat, val);
series.setTitle(chartSeries.get(0).getLeft(), null);
// Add data labels
if (!chart.getCTChart().getPlotArea().getPieChartArray(0).getSerArray(0).isSetDLbls()) {
chart.getCTChart().getPlotArea().getPieChartArray(0).getSerArray(0).addNewDLbls();
}
chart.getCTChart().getPlotArea().getPieChartArray(0).getSerArray(0).getDLbls().addNewShowVal().setVal(true);
chart.getCTChart().getPlotArea().getPieChartArray(0).getSerArray(0).getDLbls().addNewShowSerName().setVal(false);
chart.getCTChart().getPlotArea().getPieChartArray(0).getSerArray(0).getDLbls().addNewShowCatName().setVal(false);
chart.getCTChart().getPlotArea().getPieChartArray(0).getSerArray(0).getDLbls().addNewShowPercent().setVal(false);
chart.getCTChart().getPlotArea().getPieChartArray(0).getSerArray(0).getDLbls().addNewShowLegendKey().setVal(false);
chart.getCTChart().getPlotArea().getPieChartArray(0).getSerArray(0).getDLbls().addNewNumFmt().setFormatCode("0,00");
setPieChartColors(colorScheme, chart, series);
chart.plot(data);
}
我什至在寻找正确的东西吗?任何帮助表示赞赏 - 谢谢!
【问题讨论】:
标签: java apache-poi pie-chart