2016-04-21 39 views
1

複数のグラフ(複数の棒グラフと折れ線グラフ)を持つパワーポイントスライドがあります 私はapache POIライブラリを使用してそれらを更新する必要があります。これまではスライドごとに1つのチャートを使用していましたが、値を識別して更新するために、以下のコードを使用してチャートを取得しました。特定のチャートを識別する方法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; 
     } 

    } 

形状、テキストボックスのように識別できるとshapenameを使用してコードで取得できるように任意の方法を参照してくださいいけないが、見ていけませんチャート用のもの。いずれか1つ私plzを助けることができますか?

答えて

0

私はオフィスメイトの助けを借りてそれを識別する方法を考え出しました。

最初にパワーポイント内のチャートにタイトルを付けて、レイアウト>チャートのタイトル>上のチャートを表示し、任意の名前を付けます。そのタイトルを非表示にするには、フォントサイズを小さく保ち、フォントの色を白にします。

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; 
} 
次のようにJavaでコードを追加します。
関連する問題