1

有人可以帮我如何在 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 文件吗?

4

3 回答 3

3

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

于 2012-05-21T11:55:35.557 回答
3

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

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

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 的回复希望这会有所帮助。

于 2015-12-12T01:39:37.730 回答
0

根据apache poi release notes,3.8版本可以用来阅读PPTX。不过,您必须查看文档。

于 2012-05-21T11:51:23.773 回答