2016-04-21 2 views
1

Ich habe eine PowerPoint-Folie, die mehrere Diagramme (mehrere Balken und Liniendiagramm) hat Ich muss sie aktualisieren mit Apache POI-Bibliothek. Bisher hatte ich ein Diagramm pro Folie, und ich benutzte, um das Diagramm unter Verwendung von Code zu verwenden, um die Werte zu identifizieren und zu aktualisieren.Wie man bestimmte Diagramme in Power Point Slides mit Apache POI

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

nicht sicher, wie bestimmtes Diagramm erkennen nicht jede Methode sehen, wie ich wie Form identifizieren konnte

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

    } 

i Namen Tabelle, Textfeld in Powerpoint gab und kann in Code Shape abrufen, aber nicht sehen alles für das Diagramm. kann mir jemand helfen plz?

Antwort

0

Ich fand einen Weg, um das mit Hilfe von Bürokollegen zu identifizieren.

zuerst geben Sie einen Titel zu Diagramm in Power Point Layout> Diagrammtitel> oben Diagramm dann geben Sie einen beliebigen Namen. Um diesen Titel zu verbergen, halten Sie die Schriftgröße klein und machen Sie die Schriftfarbe weiß.

add Code in Java, wie unten

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