Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中使用POI和org.openxmlformats为PPT中的条形图添加数据标签_Java_Apache_Apache Poi_Openxml - Fatal编程技术网

如何在Java中使用POI和org.openxmlformats为PPT中的条形图添加数据标签

如何在Java中使用POI和org.openxmlformats为PPT中的条形图添加数据标签,java,apache,apache-poi,openxml,Java,Apache,Apache Poi,Openxml,我正在制作power point演示文稿。每张幻灯片都有一个图表(条形图或饼图)。我正在使用ApachePOI库和org.openxmlformats CTDLbls dLbls = cTBarChart.addNewDLbls(); dLbls.addNewShowBubbleSize().setVal(false); dLbls.addNewShowLegendKey().setVal(false); dLbls.addNewS

我正在制作power point演示文稿。每张幻灯片都有一个图表(条形图或饼图)。我正在使用ApachePOI库和org.openxmlformats

        CTDLbls dLbls = cTBarChart.addNewDLbls();
        dLbls.addNewShowBubbleSize().setVal(false);
        dLbls.addNewShowLegendKey().setVal(false);
        dLbls.addNewShowCatName().setVal(false);
        dLbls.addNewShowSerName().setVal(false);
        dLbls.addNewShowPercent().setVal(false);
        dLbls.addNewShowVal().setVal(true);
我能够为图形绘制数据表,但无法为图形绘制数据标签

        CTDLbls dLbls = cTBarChart.addNewDLbls();
        dLbls.addNewShowBubbleSize().setVal(false);
        dLbls.addNewShowLegendKey().setVal(false);
        dLbls.addNewShowCatName().setVal(false);
        dLbls.addNewShowSerName().setVal(false);
        dLbls.addNewShowPercent().setVal(false);
        dLbls.addNewShowVal().setVal(true);
实际输出-

        CTDLbls dLbls = cTBarChart.addNewDLbls();
        dLbls.addNewShowBubbleSize().setVal(false);
        dLbls.addNewShowLegendKey().setVal(false);
        dLbls.addNewShowCatName().setVal(false);
        dLbls.addNewShowSerName().setVal(false);
        dLbls.addNewShowPercent().setVal(false);
        dLbls.addNewShowVal().setVal(true);
请在下面找到生成的不带数据标签的图表- 预期产出-

        CTDLbls dLbls = cTBarChart.addNewDLbls();
        dLbls.addNewShowBubbleSize().setVal(false);
        dLbls.addNewShowLegendKey().setVal(false);
        dLbls.addNewShowCatName().setVal(false);
        dLbls.addNewShowSerName().setVal(false);
        dLbls.addNewShowPercent().setVal(false);
        dLbls.addNewShowVal().setVal(true);
代码-

CTChartSpace chartSpace = myXSLFChartShape.getMyXSLFChart().getChartSpace();
    CTChart cTChart = chartSpace.addNewChart();
    CTPlotArea cTPlotArea = cTChart.addNewPlotArea();
    CTBarChart cTBarChart = cTPlotArea.addNewBarChart();
    cTBarChart.addNewVaryColors().setVal(true);
    cTBarChart.addNewBarDir().setVal(STBarDir.COL);
    //int c = 0;
    for (int r = 0; r < 2; r++) {
        //c=1;
        CTBarSer cTBarSer = cTBarChart.addNewSer();
        CTStrRef cTStrRef = cTBarSer.addNewTx().addNewStrRef();
        cTStrRef.setF("Label " + r);
        cTStrRef.addNewStrCache().addNewPtCount().setVal(1);
        CTStrVal cTStrVal = cTStrRef.getStrCache().addNewPt();
        cTStrVal.setIdx(0);
        cTStrVal.setV("Val" + r);

        cTBarSer.addNewIdx().setVal(r);
        cTStrRef = cTBarSer.addNewCat().addNewStrRef();
        cTStrRef.setF("Categories");
        cTStrRef.addNewStrCache().addNewPtCount().setVal(1);

        for (int c = 0; c < 2; c++) {
            cTStrVal = cTStrRef.getStrCache().addNewPt();
            cTStrVal.setIdx(c);             
            cTStrVal.setV("Cat" + c);
        }

        CTNumRef cTNumRef = cTBarSer.addNewVal().addNewNumRef();
        cTNumRef.setF("" + 0);
        cTNumRef.addNewNumCache().addNewPtCount().setVal(1);
        for (int c = 0; c < 2; c++) {
            CTNumVal cTNumVal = cTNumRef.getNumCache().addNewPt();
            cTNumVal.setIdx(c);
            cTNumVal.setV("" + (10 * (c + 1)));
        }
            //c++;
    }

    // telling the BarChart that it has axes and giving them Ids
    cTBarChart.addNewAxId().setVal(123456);
    cTBarChart.addNewAxId().setVal(123457);

    // cat axis
    CTCatAx cTCatAx = cTPlotArea.addNewCatAx();
    cTCatAx.addNewAxId().setVal(123456); // id of the cat axis
    CTScaling cTScaling = cTCatAx.addNewScaling();
    cTScaling.addNewOrientation().setVal(STOrientation.MIN_MAX);
    cTCatAx.addNewDelete().setVal(false);
    cTCatAx.addNewAxPos().setVal(STAxPos.B);
    cTCatAx.addNewCrossAx().setVal(123457); // id of the val axis
    cTCatAx.addNewTickLblPos().setVal(STTickLblPos.NEXT_TO);

    // val axis
    CTValAx cTValAx = cTPlotArea.addNewValAx();
    cTValAx.addNewAxId().setVal(123457); // id of the val axis
    cTScaling = cTValAx.addNewScaling();
    cTScaling.addNewOrientation().setVal(STOrientation.MIN_MAX);
    cTValAx.addNewDelete().setVal(false);
    cTValAx.addNewAxPos().setVal(STAxPos.L);
    cTValAx.addNewCrossAx().setVal(123456); // id of the cat axis
    cTValAx.addNewTickLblPos().setVal(STTickLblPos.NEXT_TO);
    cTValAx.addNewDispUnits();
    // legend


    CTLegend cTLegend = cTChart.addNewLegend();
    cTLegend.addNewLegendPos().setVal(STLegendPos.R);

    CTDTable c = cTPlotArea.addNewDTable();
    c.addNewShowKeys();
        CTDLbls dLbls = cTBarChart.addNewDLbls();
        dLbls.addNewShowBubbleSize().setVal(false);
        dLbls.addNewShowLegendKey().setVal(false);
        dLbls.addNewShowCatName().setVal(false);
        dLbls.addNewShowSerName().setVal(false);
        dLbls.addNewShowPercent().setVal(false);
        dLbls.addNewShowVal().setVal(true);
CTChartSpace chartSpace=myXSLFChartShape.getMyXSLFChart().getChartSpace();
CTChart CTChart=chartSpace.addNewChart();
CTPlotArea CTPlotArea=cTChart.addNewPlotArea();
CTBarChart CTBarChart=cTPlotArea.addNewBarChart();
cTBarChart.addNewVaryColors().setVal(true);
cTBarChart.addNewBarDir().setVal(STBarDir.COL);
//int c=0;
对于(int r=0;r<2;r++){
//c=1;
CTBarSer-CTBarSer=cTBarChart.addNewSer();
CTStrRef CTStrRef=cTBarSer.addNewTx().addNewStrRef();
cTStrRef.setF(“标签”+r);
ctstref.addNewStrCache().addNewPtCount().setVal(1);
CTStrVal CTStrVal=cTStrRef.getStrCache().addNewPt();
cTStrVal.setIdx(0);
cTStrVal.setV(“Val”+r);
cTBarSer.addNewIdx().setVal(r);
cTStrRef=cTBarSer.addNewCat().addNewStrRef();
cTStrRef.setF(“类别”);
ctstref.addNewStrCache().addNewPtCount().setVal(1);
对于(int c=0;c<2;c++){
cTStrVal=cTStrRef.getStrCache().addNewPt();
cTStrVal.setIdx(c);
cTStrVal.setV(“Cat”+c);
}
CTNumRef CTNumRef=cTBarSer.addNewVal().addNewNumRef();
cTNumRef.setF(“+0”);
cTNumRef.addNewNumCache().addNewPtCount().setVal(1);
对于(int c=0;c<2;c++){
CTNumVal CTNumVal=cTNumRef.getNumCache().addNewPt();
cTNumVal.setIdx(c);
cTNumVal.setV(“+(10*(c+1));
}
//c++;
}
//告诉柱状图它有轴并给它们ID
cTBarChart.addNewAxId().setVal(123456);
cTBarChart.addNewAxId().setVal(123457);
//猫轴
CTCatAx CTCatAx=cTPlotArea.addNewCatAx();
cTCatAx.addNewAxId().setVal(123456);//cat轴的id
CTScaling-CTScaling=cTCatAx.addNewScaling();
cTScaling.addNewOrientation().setVal(stororientation.MIN_MAX);
cTCatAx.addNewDelete().setVal(false);
cTCatAx.addNewAxPos().setVal(STAxPos.B);
cTCatAx.addNewCrossAx().setVal(123457);//val轴的id
cTCatAx.addNewTickLblPos().setVal(sttickllpos.NEXT_TO);
//val轴
CTValAx CTValAx=cTPlotArea.addNewValAx();
cTValAx.addNewAxId().setVal(123457);//val轴的id
cTScaling=cTValAx.addNewScaling();
cTScaling.addNewOrientation().setVal(stororientation.MIN_MAX);
cTValAx.addNewDelete().setVal(false);
cTValAx.addNewAxPos().setVal(statxpos.L);
cTValAx.addNewCrossAx().setVal(123456);//cat轴的id
cTValAx.addNewTickLblPos().setVal(STTickLblPos.NEXT_TO);
cTValAx.addNewDispUnits();
//传奇
CTLegend CTLegend=cTChart.addNewLegend();
cTLegend.addNewLegendPos().setVal(STLegendPos.R);
CTDTable c=cTPlotArea.addNewDTable();
c、 addNewShowKeys();
如果有人能帮助我实现目标,那就太好了。
提前谢谢

添加Openxmlformats库的数据标签可以通过CTDLbls类实现。查找以下代码段-

        CTDLbls dLbls = cTBarChart.addNewDLbls();
        dLbls.addNewShowBubbleSize().setVal(false);
        dLbls.addNewShowLegendKey().setVal(false);
        dLbls.addNewShowCatName().setVal(false);
        dLbls.addNewShowSerName().setVal(false);
        dLbls.addNewShowPercent().setVal(false);
        dLbls.addNewShowVal().setVal(true);

为Openxmlformats库添加数据标签可以通过CTDLbls类实现。查找以下代码段-

        CTDLbls dLbls = cTBarChart.addNewDLbls();
        dLbls.addNewShowBubbleSize().setVal(false);
        dLbls.addNewShowLegendKey().setVal(false);
        dLbls.addNewShowCatName().setVal(false);
        dLbls.addNewShowSerName().setVal(false);
        dLbls.addNewShowPercent().setVal(false);
        dLbls.addNewShowVal().setVal(true);
-> -> . -> -> .