2016-04-21 70 views
1

我有一个电源点的幻灯片有多个图表(多条线和折线图) 我需要使用Apache POI库更新它们。到目前为止,我曾经每张幻灯片都有一张图表,并且我使用下面的代码来获取图表来识别和更新这些值。如何检索使用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中使用shapename代码可以检索但没看见任何图表。任何人都可以帮助我吗?

回答

0

我想出了一种方法来识别办公室队友的帮助。

首先给出图表的标题,在power point中打开layout> chart title>上面的图表,然后给出任何名称。要隐藏该标题,请减小字体大小并使字体颜色为白色。

在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; 
}