2016-04-21 68 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; 
}