Java读取pptx文件

时间:2012-05-21 11:38:47

标签: 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 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();
}

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

3 个答案:

答案 0 :(得分:3)

以下链接提供了从ppt读取数据的完整代码... http://svn.apache.org/repos/asf/poi/trunk/src/examples/src/org/apache/poi/xslf/usermodel/DataExtraction.java

为了提供简短的摘要,我可以注意以下步骤: 首先使用

创建幻灯片对象
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream("url of your ppt"));

使用以下命令获取ppt中的侧面列表:

final List<XSLFSlide> slide = ppt.getSlides();

遍历幻灯片并使用以下方法获取每张幻灯片中的形状列表:

List<XSLFShape> shapes = selectedslide.getShapes(); 

检查形状的类型,它应该是XSLFTextShape或XSLFPictureShape。 然后,您可以相应地处理和显示数据。

以下是进一步阅读形状的链接 https://poi.apache.org/apidocs/org/apache/poi/xslf/usermodel/XSLFShape.html

@Arne de Bruijn的回应 希望这可以帮助。

答案 1 :(得分:2)

根据http://poi.apache.org/slideshow/index.html,您需要使用一组单独的类来读取OOXML .pptx文件。食谱中有示例代码:http://poi.apache.org/slideshow/xslf-cookbook.html

答案 2 :(得分:0)

根据apache poi发行说明,版本3.8可用于阅读PPTX。你必须查看文档。