标签:except depend end res nts 相同 mic enc ring
在 pom.xml中增加以下依赖
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.1</version> </dependency>
注:很多博客,教我们用以下依赖,是没有XSSF相关内容的
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.14</version> </dependency>
poi的版本可以在 https://mvnrepository.com/artifact/org.apache.poi/poi 进行查询。
找到想要依赖的版本
点击进入后,可以直接复制里面的依赖
import org.apache.poi.sl.usermodel.SlideShow; import org.apache.poi.sl.usermodel.SlideShowFactory; SlideShow slideShow = SlideShowFactory.create(new File("./res/1.pptx"));
XSLFSlide未提供public的构造函数,获取只能通过SlideShow中提供的createSlide, getSlides方法获取。
如图:XSLFSlide的构造函数,都是私有的
如图:SlideShow中提供的Slide获取方法, 由于 Slide 接口只有一个实现(XLSFSlide),所以可以直接转换成实现类(XLSFSlide)操作
获取所有的备注
XSLFNotes notes = slider.getNotes();
获取所有的批注
List<XSLFComment> comments = slider.getComments();
List<POIXMLDocumentPart.RelationPart> relationParts = slider.getRelationParts();
List<XSLFShape> shapes = slider.getShapes();
POIXMLDocmentPart是一个ppt关联的部分的具体内容,包括:备注、批注、图片、图表、母版等。
通过 POIXMLDocumentPart documentPart = POIXMLDocumentPart.RelationPart.getDocumentPart() 获取。
if (documentPart instanceof XSLFComments) { XSLFComments comments1 = (XSLFComments) documentPart; }
图表部分,有多个,每个图表一个 XSLFChart
if (documentPart instanceof XSLFChart) { XSLFChart chart = (XSLFChart) documentPart; }
备注部分, 与 slider.getNotes() 相同
if (documentPart instanceof XSLFNotes) { XSLFNotes notes1 = (XSLFNotes) documentPart; }
// 文本段落,一行为一段 List<List<XSLFTextParagraph>> textParagraphs = notes1.getTextParagraphs(); // 第一行的所有文本,包含文本样式 List<XSLFTextRun> textRuns = textParagraphs.get(0).get(0).getTextRuns(); // 第一行的文本内容 String text = textParagraphs.get(0).get(0).getText();
母版,只有一个
if (documentPart instanceof XSLFSlideLayout) { XSLFSlideLayout relation1 = (XSLFSlideLayout) documentPart; }
获取 shape 的文本
for (XSLFShape shape : shapes) { if (shape instanceof XSLFTextShape) { // 有文本的 sharpe XSLFTextShape textShape = (XSLFTextShape) shape; // 文本段落,一行为一段 List<XSLFTextParagraph> textParagraphs = textShape.getTextParagraphs(); // 第一行的所有文本,包含文本样式 List<XSLFTextRun> textRuns = textParagraphs.get(0).getTextRuns(); // 第一行的文本内容 String text = textParagraphs.get(0).getText(); } else if (shape instanceof XSLFGroupShape) { // 图形组合 XSLFGroupShape groupShape = (XSLFGroupShape) shape; // 图形组合下的图形,可以与 slider.getShapes() 获取的list一样操作 List<XSLFShape> groupShapeShapes = groupShape.getShapes(); } }
标签:except depend end res nts 相同 mic enc ring
原文地址:https://www.cnblogs.com/zhongchengyi/p/12151756.html