Java读取pptx文件

Java读取pptx文件,java,powerpoint,Java,Powerpoint,有人能帮助我如何读取java中的pptx文件吗?我更希望这可以通过apache POI读取,我已经搜索了本教程,但找不到它。我已成功读取ppt文件,代码如下: try { FileInputStream fis = new FileInputStream(file); fs = new POIFSFileSystem(fis); HSLFSlideShow show = new HSLFSlideShow(fs); SlideShow ss = new Slide

有人能帮助我如何读取java中的pptx文件吗?我更希望这可以通过apache POI读取,我已经搜索了本教程,但找不到它。我已成功读取ppt文件,代码如下:

try {
    FileInputStream fis = new FileInputStream(file);
    fs = new POIFSFileSystem(fis);
    HSLFSlideShow show = new HSLFSlideShow(fs);
    SlideShow ss = new SlideShow(show);
    Slide[] slides=ss.getSlides();
    for (int x = 0; x < slides.length; x++) {
        System.out.println("Slide = " + (x + 1) + " :" + slides[x].getTitle());

        TextRun[] runs = slides[x].getTextRuns();
        for (int i = 0; i < runs.length; i++) {
            TextRun run = runs[i];
            if (run.getRunType() == TextHeaderAtom.TITLE_TYPE) {
                System.out.println("Slide title " + (i + 1) + ": " + run.getText());
            } else {
                System.out.println("Slide text run " + (i + 1) + ": "  + run.getRunType() + " : " + run.getText());
            }
        }
    }
} catch (IOException ioe) {
    ioe.printStackTrace();
}
试试看{
FileInputStream fis=新的FileInputStream(文件);
fs=新的POIFSFS文件系统(fis);
HSLFSlideShow show=新的HSLFSlideShow(fs);
SlideShow ss=新幻灯片(显示);
Slide[]slides=ss.getSlides();
对于(int x=0;x

有人能告诉我必须修改此代码的哪一部分才能读取pptx文件吗?

根据apache poi发行说明,3.8版可用于读取pptx。不过,您必须查看文档

根据apache poi发行说明,3.8版可用于读取PPTX。不过,您必须查看文档

根据需要,您需要使用一组单独的类来读取OOXML.pptx文件。食谱中有一个示例代码:

根据您需要使用一组单独的类来读取OOXML.pptx文件。食谱中有一个示例代码:

下面的链接给出了从ppt读取数据的完整代码。。。

为了提供一个简短的总结,我可以说明以下步骤: 首先使用创建幻灯片对象

XMLSlideShow ppt = new XMLSlideShow(new FileInputStream("url of your ppt"));
使用以下方法获取ppt中的侧面列表:

final List<XSLFSlide> slide = ppt.getSlides();
final List slide=ppt.getSlides();
反复浏览幻灯片,并使用以下方法获取每张幻灯片中的形状列表:

List<XSLFShape> shapes = selectedslide.getShapes(); 
List shapes=selectedslide.getShapes();
检查形状的类型,它应该是XSLFTextShape或XSLFPictureShape。 然后可以相应地处理和显示数据

以下是进一步阅读形状的链接。

@Arne de Bruijn的答复
希望这有帮助

下面的链接提供了从ppt读取数据的完整代码。。。

为了提供一个简短的总结,我可以说明以下步骤: 首先使用创建幻灯片对象

XMLSlideShow ppt = new XMLSlideShow(new FileInputStream("url of your ppt"));
使用以下方法获取ppt中的侧面列表:

final List<XSLFSlide> slide = ppt.getSlides();
final List slide=ppt.getSlides();
反复浏览幻灯片,并使用以下方法获取每张幻灯片中的形状列表:

List<XSLFShape> shapes = selectedslide.getShapes(); 
List shapes=selectedslide.getShapes();
检查形状的类型,它应该是XSLFTextShape或XSLFPictureShape。 然后可以相应地处理和显示数据

以下是进一步阅读形状的链接。

@Arne de Bruijn的答复

希望这有帮助

您在上面说过,您可以“成功读取具有上述发布代码的pptx”文件。然后你说“这段代码的哪一部分可以修改为pptx”?!?你知道ppt和pptx的区别吗?嗯,抱歉。我想我没有正确地阅读这篇文章。没问题,你能帮我吗?你在上面说过你可以用上面发布的代码“成功地阅读pptx”文件。然后你说“这段代码的哪一部分可以修改为pptx”?!?你知道ppt和pptx的区别吗?嗯,抱歉。我想我没有正确阅读这篇文章。没问题,你能帮我吗?我使用的是poi版本3.8,但我认为在阅读pptx文件时很难理解文档。我使用的是poi版本3.8,但我认为在阅读pptx文件时很难理解文档。在示例中,它只是解释如何读取,但只是在该文件上附加幻灯片,而不是如何读取整个幻灯片并将其显示给用户。当您有一个XSLFSlide对象时,可以使用.getShapes()获取幻灯片中的所有形状。如果形状是XSLFTextShape,则可以使用.getTextType()检查它是否是标题,.getTextPages()获取段落,使用.getExtruns()获取段落中的文本。这将为您提供与问题中的代码类似的输出。您能给我一些如何使用XSLFTextShape的示例吗?我尝试了.getShape()方法,并在控制台中打印它,但我收到了这个消息[Lorg.apache.poi.xslf.usermodel.XSLFShape;@3632112e作为结果。您必须像示例代码中那样使用强制转换。请参阅XSLFTextShape实例附近的行。在示例中,它只是解释如何读取,但只是在该文件上附加幻灯片,而不是如何读取整个幻灯片并将其显示给用户。当您有一个XSLFSlide对象时,您可以使用.getShapes()用于获取幻灯片中的所有形状。如果形状是XSLFTextShape,则可以使用.getTextType()检查它是否是标题,.getTextPages()用于获取段落和.getTextRuns()在段落上获取文本时,将与文本一起运行。这将为您提供与问题中的代码类似的输出。您能给我一些如何使用XSLFTextShape的示例吗?我尝试了.getShape()方法,并在控制台中打印了它,但收到了此消息[Lorg.apache.poi.xslf.usermodel.XSLFShape;@3632112e作为结果。您必须使用示例代码中的强制转换。请参见XSLFTextShape实例附近的行。