java poi接口_java poi ppt 接口的基本操作

依赖

在 pom.xml中增加以下依赖

org.apache.poi

poi-ooxml

4.1.1

注:很多博客,教我们用以下依赖,是没有XSSF相关内容的

org.apache.poi

poi

3.14

version 版本

找到想要依赖的版本

257adc61a8100818419e940c652a7942.png

点击进入后,可以直接复制里面的依赖

c90b9d264d0e8bf866c39d8a7fc44297.png

初始化

import org.apache.poi.sl.usermodel.SlideShow;

import org.apache.poi.sl.usermodel.SlideShowFactory;

SlideShow slideShow = SlideShowFactory.create(new File("./res/1.pptx"));

如果文件不存在或文件正在使用,create 方法抛出 IOException 异常

如果文件损坏,create 方法抛出 EncryptedDocumentException 异常

返回值 SlideShow 代表整个ppt文档,可以通过 SlieShow.getSlides() 获取每张幻灯片进行操作,以及获取整个ppt的信息,如页面大小(getPageSize, setPageSize),图片数据(getPictureData, setPictureData),字体,输出到流等

通过SlideShow.getSlides()后操作Slide都可以反应到SlideShow。

Slide

slide代表幻灯片的一页

也是代表open-xml中  /ppt/sliders/*.xml 中的一个xml文档

Slide只有一个实现类 XSLFSlide

获取方法

XSLFSlide未提供public的构造函数,获取只能通过SlideShow中提供的createSlide, getSlides方法获取。

如图:XSLFSlide的构造函数,都是私有的

be395e50e271e7257d1c90b2b75c2206.png

如图:SlideShow中提供的Slide获取方法, 由于 Slide 接口只有一个实现(XLSFSlide),所以可以直接转换成实现类(XLSFSlide)操作

14992060d5d0e22faa4f4ce66baf449b.png

常用操作

获取所有的备注

XSLFNotes notes = slider.getNotes();

获取所有的批注

Listcomments = slider.getComments();

获取所有的关联部分,包括:备注,批注,图片,图表,母版等

ListrelationParts = slider.getRelationParts();

获取备注,批注都是从 getRelationParts中获取的

除了图形的获取,其他元素的获取都可以通过此方法获取(通过遍历判断类型)

获取所有的图形

Listshapes = slider.getShapes();

POIXMLDocumentPart

POIXMLDocmentPart是一个ppt关联的部分的具体内容,包括:备注、批注、图片、图表、母版等。

通过 POIXMLDocumentPart documentPart = POIXMLDocumentPart.RelationPart.getDocumentPart() 获取。

批注部分, 与 slider.getComments() 对应

if (documentPart instanceofXSLFComments) {

XSLFComments comments1=(XSLFComments) documentPart;

}

图表部分,有多个,每个图表一个 XSLFChart

if (documentPart instanceofXSLFChart) {

XSLFChart chart=(XSLFChart) documentPart;

}

备注部分, 与 slider.getNotes() 相同

if (documentPart instanceofXSLFNotes) {

XSLFNotes notes1=(XSLFNotes) documentPart;

}

获取备注的一行文本

//文本段落,一行为一段

List> textParagraphs =notes1.getTextParagraphs();//第一行的所有文本,包含文本样式

ListtextRuns = textParagraphs.get(0).get(0).getTextRuns();//第一行的文本内容

String text = textParagraphs.get(0).get(0).getText();

母版,只有一个

if (documentPart instanceofXSLFSlideLayout) {

XSLFSlideLayout relation1=(XSLFSlideLayout) documentPart;

}

XSLFShape

获取 shape 的文本

for(XSLFShape shape : shapes) {if (shape instanceofXSLFTextShape) {//有文本的 sharpe

XSLFTextShape textShape =(XSLFTextShape) shape;//文本段落,一行为一段

ListtextParagraphs =textShape.getTextParagraphs();//第一行的所有文本,包含文本样式

ListtextRuns = textParagraphs.get(0).getTextRuns();//第一行的文本内容

String text = textParagraphs.get(0).getText();

}else if (shape instanceofXSLFGroupShape) {//图形组合

XSLFGroupShape groupShape =(XSLFGroupShape) shape;//图形组合下的图形,可以与 slider.getShapes() 获取的list一样操作

ListgroupShapeShapes =groupShape.getShapes();

}

}

文章来源: www.cnblogs.com,作者:Cheney.Zhong.ZCY,版权归原作者所有,如需转载,请联系作者。

原文链接:https://www.cnblogs.com/zhongchengyi/p/12151756.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值