Java 如何使用Apache';以编程方式从Powerpoint演示文稿中读取图形值;是波伊吗?

Java 如何使用Apache';以编程方式从Powerpoint演示文稿中读取图形值;是波伊吗?,java,apache-poi,powerpoint,Java,Apache Poi,Powerpoint,我有一个带图形的Powerpoint演示文稿,我想使用Java和。当我使用Powerpoint编辑图形数据时,会打开一个Excel窗口,其中包含这些值,我希望从Java应用程序中访问这些值 如何以编程方式访问图形的值?在第一部分中,我们需要导航到XSLFChart对象: final String filename = "resources/fptbenchmark/Powerpoint Import.pptx"; final XMLSlideShow ppt = new XMLSlideShow

我有一个带图形的Powerpoint演示文稿,我想使用Java和。当我使用Powerpoint编辑图形数据时,会打开一个Excel窗口,其中包含这些值,我希望从Java应用程序中访问这些值


如何以编程方式访问图形的值?

在第一部分中,我们需要导航到
XSLFChart
对象:

final String filename = "resources/fptbenchmark/Powerpoint Import.pptx";
final XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(filename));

final XSLFSlide slide = ppt.getSlides()[5];
幻灯片包含不同的部分(
getRelations()
),其中一部分应该 包含
XSLFChart

final List<POIXMLDocumentPart> relations = slide.getRelations();
assert relations.size() == 3;

final XSLFChart xslfChart = (XSLFChart)relations.get(2);
CTChart ctChart = xslfChart.getCTChart();
您可以从
CTChart
开始导航此树:

final List<POIXMLDocumentPart> relations = slide.getRelations();
assert relations.size() == 3;

final XSLFChart xslfChart = (XSLFChart)relations.get(2);
CTChart ctChart = xslfChart.getCTChart();
由于有一个
标记,因此可以调用关联的成员函数 访问它:

CTPlotArea plotArea = ctChart.getPlotArea();
从那以后,你应该可以四处导航了

List<CTNumVal> ptList = plotArea.getScatterChartList().get(1)
    .getSerList().get(0)
    .getXVal()
    .getNumRef()
    .getNumCache()
    .getPtList();
参考资料


你能不能不只是退出,然后像平常一样打开它?@Gagravarr你的链接展示了如何对HSLF对象执行此操作,但我们如何对XSLF执行同样的操作?