根据ppt模板修改ppt内容
需求背景:
给定ppt模板,支持对ppt中内容修改并生成新的ppt,且表格/图片/文字样式还是用模板中的样式
java poi提供了操作ppt的api主要分两种
一种XSLF对应pptx文件
一种HSLF对应ppt文字
这里我们主要介绍解析pptx文件的
1.引入maven依赖
目前用到的版本比较低,主要api方法应该变化不大
<dependency><groupId>org.apache.poi</groupId><artifactId>poi-scratchpad</artifactId><version>3.15</version></dependency><!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml --><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.15</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml-schemas</artifactId><version>4.0.1</version></dependency>
``
2.简要代码如下
File file = new File(sourcePath);
inputStream = new FileInputStream(file);
xmlSlideShow = new XMLSlideShow(inputStream);//获取ppt流对象
List<XSLFSlide> slides = xmlSlideShow.getSlides();//得到所有ppt页
for(XSLFSlide slide :slides){//一页一页遍历List<XSLFShape> shapes = slide.getShapes();for (XSLFShape shape : shapes) {if (shape instanceof XSLFTable) {//表格int colSize = ((XSLFTable) shape).getNumberOfColumns();//表格列总数int rowSize = ((XSLFTable) shape).getNumberOfRows();//表格总数for(int i=0; i<rowSize ;i++){for(int j=0; j<colSize ;j++){XSLFTableCell cell = ((XSLFTable) shape).getCell(i, j);//单元格对象}}}if (shape instanceof XSLFTextShape) {//文字String text = ((XSLFTextShape) shape).getText();//拿到文字}if (shape instanceof XSLFPictureShape) {//图片XSLFPictureData pictureData = ((XSLFPictureShape) shape).getPictureData();byte[] data = pictureData.getData();//拿到图片字节数组就可以用流将图片数据写入}//图表处理不一样List<POIXMLDocumentPart.RelationPart> relationParts=slide.getRelationParts();for(POIXMLDocumentPart.RelationPart relation :relationParts ){POIXMLDocumentPart documentPart = relation.getDocumentPart();if(documentPart instanceof XSLFChart){XSLFChart chart = (XSLFChart) documentPart;// 查看里面的图表数据,才能知道是什么图表CTPlotArea plot = chart.getCTChart().getPlotArea();//图表主要有折线LineChart,柱状图BarChart,饼图PieChart等,主要是解析xml文件}}}
}
代码地址
根据ppt模板修改ppt内容相关推荐
- 述职报告PPT模板包含那些内容?
报告是部门负责人向上级管理人员陈述自己某一阶段的工作情况,进行总结回顾,找出工作中内在规律,以指导未来实践执行工作情况的报告.述职报告可以说是工作汇报中的总结性报告.那么述职报告PPT模板包含那些内容 ...
- html的ppt模板,[PPT模板]HTML_JS_CSS.ppt
[PPT模板]HTML_JS_CSS HTML/JS/CSS南京润和培训中心 HTML/JS/CSS介绍 HTML是英文 HyperText Markup Language 的缩写,它是一种标记语言, ...
- 【GZH逸佳君】答辩ppt模板-毕业季ppt模板-毕设ppt模板-本科答辩ppt模板-毕业答辩ppt模板-毕业设计答辩ppt-ppt模板免费下载-ppt模板下载免费版 100套
答辩是一件大事,会直接影响毕业结果.所以,逸佳君今天给大家整理了100套答辩ppt模板,在文答辩是一件大事,会直接影响毕业结果.所以,逸佳君今天给大家整理了100套答辩ppt模板,在章最后面获取. 毕 ...
- 可爱卡通风PPT模板,专为老师教学打造的PPT模板-幼儿园PPT模板
可爱卡通风PPT模板是一个充满趣味和创意的演示模板,它的绘画风格清新可爱,整体色彩鲜艳明快,非常适合用于儿童教育.游戏介绍.漫画动画等方面的演示. 下载地址:140种PPT模板,将近1万套精选模板 在 ...
- html展示ppt模板效果,PPT大神亲测,PPT这样展示图片效果“perfect”!快来收藏吧
终于等到你了,我是爱踢汪.红米手机发布会,抢眼的不仅仅是最新款手机,还有发布会的PPT.发布会PPT图片展示技巧,文字的处理,配色等都堪称一绝.下面我们就来看一看发布会常用的图片展示技巧. PPT大神 ...
- 分享一份完整内容高端企业项目成本管理培训PPT模板
项目成本管理是指为保障项目实际发生的成本不超过项目预算而开展的项目资源计划.成本估算.成本预算和成本控制等方面的管理活动.项目成本管理也是为确保项目在批准的预算内按时.按质.经济.高效地完成项目的既定 ...
- 扁平化风格职业规划PPT模板
那些人需要职业规划呢?想创业,但不知道自己是否适合创业:在职场中发展不顺利,徘徊不前,当你看不到前途的时候:每天忙碌,但成果有限等,遇到这些问题的时候也是可以进行职业的规划.要职业规划就少不了PPT模 ...
- 回顾一年的工作历程_ppt模板开门红年会颁奖典礼PPT模板,回顾总结过去一年的各项工作...
ppt模板--开门红年会颁奖典礼PPT模板 本作品内容为开门红年会颁奖典礼PPT模板,采用了喜庆的中国红设计元素,共计58页.PPT封面以中国喜庆的节日氛围画面为背景,大大的红灯笼 ,中国吉祥娃娃,一 ...
- 优秀的论文答辩PPT模板值得被应用
很多学校的毕业答辩会安排在4.5.6月份,毕业论文答辩ppt和论文开题报告一样,都是必不可少的环节,提前准备是非常要的.如果想要在个人展示中成功的吸引到老师的关注,一份优秀的论文答辩PPT模板的存在就 ...
最新文章
- uniapp中vuex状态管理
- Jenkins常见问题解决(持续更新)
- velocity模板 If / ElseIf / Else语法
- centos下yum安装nginx
- JavaScript之手写Promise
- 用VisualVM分析MyEclipse
- [leetcode] 230.二叉搜索树中的最小树
- uni中动态加载class_Java基础·类加载、反射
- 单关闭功能_广告弹窗关闭
- 计算机关机doc命,[计算机]自动关机命令设置.doc
- String的spilt()方法
- 解决大篇幅pdf中英文复制时,粘贴到word中自动换行的问题
- 历史不忍细看之--孔老二罪恶的一生
- 小数化分数 (思维)
- 凸包算法(Graham扫描法)
- win 11 大更新,新功能爱了爱了。
- Wireshark网络分析实战笔记(二)显示过滤器
- Intel IPP库概述,合计共5000个函数
- Flink(初识Flink,快速上手)
- Lab 1: Booting a PC
热门文章
- 技术之路如何成长而不迷茫
- 泛函分析笔记06:Lp与lp空间
- 比心app源码,携带对象参数跳转页面
- 《Multi-Scale Residual Learning-using a Cycle Spinning CNN for Single Image De-Raining》
- html5 游戏 动画设计,11款效果惊艳的HTML5动画应用
- 开课吧python9.9元_神器!全网爬资源!低调使用
- win7计算机文件夹显示布局,使用Windows7巧妙管理文件夹的图文介绍
- webp 动画 android,Android加载animated webp的控制和Glide加载GIF
- 给图像添加相框、圆形圆角显示图片、图像合成知识
- 贷款行业怎样运用运营商数据找精准客户?