有人可以帮助我如何在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文件吗?
答案 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。你必须查看文档。