繁体   English   中英

如何使用apache POI在power point slide中检索特定图表

[英]how to retrieve specific chart in power point slide using apache POI

我有一个power point幻灯片,它有多个图表(多个条形图和折线图)我需要使用apache POI库更新它们。 到目前为止,我曾经每张幻灯片都有一张图表,我曾经使用下面的代码来获取图表来识别和更新这些值。

    XSLFChart chart = null;
    for(POIXMLDocumentPart part : mainSlide.getRelations()){
        if(part instanceof XSLFChart){
            chart = (XSLFChart) part;
            break;
        }
    }

不知道如何识别特定的图表没有看到像我可以识别形状的任何方法

    for(XSLFSlide slide:ppt.getSlides()){
        for (XSLFShape shape : slide.getShapes()) {
            if (shapeName.equals(shape.getShapeName()))
                return slide;
        }

    }

我给powerpoint中的table,textbox命名,并且可以使用shapename在代码中检索但是没有看到任何图表。 任何人都可以帮助我吗?

我找到了一种在办公室伙伴的帮助下识别出来的方法。

首先给出电源点打开布局图表的标题>图表标题>上面的图表然后给出任何名称。 隐藏该标题使字体大小变小并使字体颜色变为白色。

在java中添加代码如下

private XSLFChart getChartObject(XSLFSlide mainSlide,String chartName) throws IOException
{
    XSLFChart chart = null;
    for(POIXMLDocumentPart part : mainSlide.getRelations()){
        if(part instanceof XSLFChart){
            chart = (XSLFChart) part;
            if(chart.getCTChart().getTitle()!=null && chart.getCTChart().getTitle().getTx()!=null){

            if(chart.getCTChart().getTitle().getTx().getRich().getPList().get(0).getRList().get(0).getT().equals(chartName))
                break;
            }
        }
    }
    return chart;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM