找不到使用Apache POI添加错误栏的API

时间:2019-12-24 19:52:20

标签: apache-poi

我试图找到如何使用Apache POI将误差线添加到散点图上,如下图所示。我的研究无法帮助我找到相应的API。您能帮忙找到API吗?

Image showing Vertical Bars

1 个答案:

答案 0 :(得分:1)

到目前为止,高级apache poi类不支持添加错误栏。它必须是XDDFChartData.Series中的方法。

但是*.xlsx文件只是ZIP档案。因此,我们可以使用Excel的{​​{1}}设置误差线。然后解压缩GUI *.xlsx档案,并查看ZIP来查找已更改的内容。

我们会发现类似的东西:

/xl/charts/chart1.xml

现在我们可以使用... <c:ser> ... <c:errBars> <c:errDir val="y"/> <c:errBarType val="both"/> <c:errValType val="percentage"/> <c:val val="10.0"/> </c:errBars> ... </c:ser> ... 的低级类来创建XML

ooxml-schemas

完整示例:

...
// add error bars
chart.getCTChart().getPlotArea().getScatterChartArray(0).getSerArray(0).addNewErrBars();
// set error bars direction only Y
chart.getCTChart().getPlotArea().getScatterChartArray(0).getSerArray(0).getErrBarsArray(0).addNewErrDir().setVal(
    org.openxmlformats.schemas.drawingml.x2006.chart.STErrDir.Y);
// set error bars type to both (minus and plus)
chart.getCTChart().getPlotArea().getScatterChartArray(0).getSerArray(0).getErrBarsArray(0).addNewErrBarType().setVal(
    org.openxmlformats.schemas.drawingml.x2006.chart.STErrBarType.BOTH);
// set error bars value type to percentage
chart.getCTChart().getPlotArea().getScatterChartArray(0).getSerArray(0).getErrBarsArray(0).addNewErrValType().setVal(
    org.openxmlformats.schemas.drawingml.x2006.chart.STErrValType.PERCENTAGE);
// set error bars value to 10%
chart.getCTChart().getPlotArea().getScatterChartArray(0).getSerArray(0).getErrBarsArray(0).addNewVal().setVal(10d);
...