Java根据模板导出PPT

article/2025/9/27 1:01:39

如何导出PPT

Java生成或者导出PPT的问题,都可以归为一类问题:根据模板导出PPT。毕竟这样做,比直接生成PPT要简单。因为工作中,遇到了要生成PPT的需求,所以做了一个根据模板PPT,生成目标PPT的例子,希望可以帮助大家。根据模板导出PPT,大体上可以分为三步:

  1. 制作PPT模板
  2. 替换模板中的文字、图片等内容
  3. 将替换完成之后的内容,生成新的PPT文件

制作PPT模板

以下是我制作的模板例子,要替换的文本,要用文本框占位,内容我先写上了对应的英文(占位的内容可以是中文,也可以是英文,只是我习惯用英文,便于区别),之后便可以根据对应的英文,替换为目标文字。如果图片是动态的,要用别的图片先占位,比如位置、尺寸大小,这样目标图片就可以替换到指定的位置。
第一页:
在这里插入图片描述

第二页:
在这里插入图片描述

第三页:
在这里插入图片描述

替换模板内容

这个在关键步骤写了注释,大家应该能看懂的,实际中,可以根据情况修改,毕竟不可能一直switch匹配,太难看,可以用map做映射关系,拿到目标文本,也可以用反射取到目标文本。

引入poi依赖

        <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>5.2.2</version></dependency>

读取模板文件

        // 读取模板文件ClassPathResource resource = new ClassPathResource("templates/test.pptx");// 根据模板,创建一个新的ppt文档XMLSlideShow ppt = new XMLSlideShow(resource.getInputStream());

替换模板内容

        // 得到每页pptList<XSLFSlide> slides = ppt.getSlides();// 遍历ppt,填充模板for (int i = 0; i < slides.size(); i++) {// 遍历每页ppt中待填充的形状组件for (XSLFShape shape : slides.get(i).getShapes()) {if (shape instanceof TextShape){// 替换文本TextShape textShape = (TextShape) shape;TextRun textRun;String text = textShape.getText();switch (text){case "username":textRun = textShape.setText("张三");textRun.setFontFamily("宋体(正文)");textRun.setFontSize(18.0);break;case "reportDate":textRun = textShape.setText("2022-10-30");textRun.setFontFamily("宋体(正文)");textRun.setFontSize(18.0);break;case "completedCnt":textRun = textShape.setText("16");textRun.setFontFamily("宋体(正文)");textRun.setFontSize(18.0);textRun.setFontColor(Color.green);break;case "UnCompletedCnt":textRun = textShape.setText("23");textRun.setFontFamily("宋体(正文)");textRun.setFontSize(18.0);textRun.setFontColor(Color.red);break;case "planDate":textRun = textShape.setText("2022-11-25");textRun.setFontFamily("宋体(正文)");textRun.setFontSize(18.0);textRun.setFontColor(Color.blue);break;}}else if (shape instanceof PictureShape){// 替换图片PictureData pictureData = ((PictureShape) shape).getPictureData();pictureData.setData(FileUtils.readFileToByteArray(new File("D:\\images\\"+i+".jpg")));}}}

生成新的PPT

        // 将新的ppt写入到指定的文件中FileOutputStream outputStream = new FileOutputStream(targetPath);ppt.write(outputStream);outputStream.close();

导出的PPT

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

参考链接:Apache POI PPT - 概述_w3cschool


http://chatgpt.dhexx.cn/article/nlp3MVEW.shtml

相关文章

LaTex - PPT 换页动态效果(亲测有效)

1 简介 生成的PDF文件默认是全屏打开。 2 源码 \documentclass[table,CJK]{beamer}%支持中文 \usepackage{ctex} %添加动画 \usepackage{animate}%打开即全屏 \hypersetup{backref,pdfpagemodeFullScreen,colorlinkstrue} \usepackage{hyperref} \hypersetup{pdfpagemodeFull…

鼠标悬停效果 PPT制作

鼠标悬停效果实现 在制作PPT时&#xff0c;有时候需要实现鼠标的悬停效果&#xff0c;即将鼠标放置在某个按钮或图片上&#xff0c;实现动态变化的效果。 目标是&#xff1a; 当鼠标悬停在一些人物名字上时&#xff0c;出现该人物的个人信息。 具体做法是&#xff1a; 设置初…

答辩ppt怎么做动态任务时钟制作PPT教程(二)

本文来自BX教程网www.benxitj.com:整理编辑 - 原文出处 www.benxitj.com/Article/?407/59.html 转载注明答辩ppt怎么做 组合部件制造:制造办法:(1.将以前制造的各项部件组合;2.增加上工夫及笔墨) 动画制造: 制造办法:(1.笔墨局部动画——动画——浮入&#xff08;向上&#x…

制作PPT课件

点击下载 更多分享&#xff1a;www.diguage.xyz 好的PowerPoint课件需要有以下几点&#xff1a; PPT课件的首页要整洁 首页是一个PPT课件等待正式上课前使用的一个页面&#xff0c;一般来说是一个欢迎页面&#xff0c;这里不需要太多的内容&#xff0c;但可以稍华丽一点&…

Latex beamer 制作 PPT

Latex beamer 制作 ppt 转载于 Latex beamer制作ppt 改了几个错别字&#xff0c;嘻嘻 参考地址 使用初探 结果展示 注意 参考地址 latex与word&#xff0c;ppt是目前用得最多得排版工具。然后&#xff0c;大部分人熟悉的多是word&#xff0c;事实上latex排版能力比word,ppt…

Latex beamer制作ppt

latex beamer制作ppt 参考地址使用初探结果展示注意 参考地址 latex与word&#xff0c;ppt是目前用得最多得排版工具。然后&#xff0c;大部分人熟悉的多是word&#xff0c;实时上latex排版能力比word,ppt更方便。其使用代码实现插入图片、公式及表格编辑&#xff0c;代码自动…

php 制作ppt,PPT制作三个基本要素是什么?

PPT制作三个基本要素是什么&#xff1f; 1、一个PPT只为一类人服务&#xff0c;针对不同听众制作不同层次内容&#xff1b; 2、PPT永远是为听者服务&#xff1b; 3、PPT只讲一个重点&#xff0c;不要试图在某个PPT中既讲技术&#xff0c;又讲管理。 PPT优势 1.使用 Microsoft O…

html5课件动画制作,ppt如何制作课件动画

我们在使用ppt制作课件的时候&#xff0c;为了吸引学生的注意&#xff0c;可以在其中添加一些动画效果&#xff0c;下面就让学习啦小编告诉你ppt如何制作课件动画。 ppt制作课件动画的方法 一、首先在PowerPoint中用绘图工具绘制出如图1所示的流程图。 注意&#xff1a;各设备颜…

pyecharts动态图表嵌入ppt

上篇文章说到动态图表可嵌入PPT&#xff0c;本篇详细介绍一下方法、帮你制作炫酷的可视化大屏PPT。附上上次的效果&#xff1a; ps: 实现过程中有问题不好解决的可以关注公众号 Python风控模型与数据分析&#xff0c;留言讨论 一、工具准备&#xff1a; office的ppt 做…

计算机图表制作教程,PPT怎么制作动态图表 PPT动态图表制作教程-电脑教程

PPT演示中&#xff0c;动态图表会比静态的更有视觉冲击力。下面我们就以一个销售图表为例&#xff0c;看看PowerPoint 2016中&#xff0c;如何快速制作出动态图表。 实际工作中&#xff0c;我们会接触到大量的Excel图表。有时在做工作汇报的时候&#xff0c;需要将Excel图表导入…

利用PPT制作不一样的动态文字技巧

今天和大家分享一个PPT技巧怎样使用PPT制作不一样的动态文字&#xff0c;不仅操作简单使用起来也很便利呢?在工作&#xff0c;生活中都可以使用&#xff0c;下面与iSlide小编一起来看看绘制技巧吧! iSlidePPT模板   操作方法 使用工具&#xff1a;电脑/PPT 1.新建一个PPT…

python制作ppt动画_卧槽,还能这么玩!用Python生成动态PPT

这些动态图表是用什么做的? 接触过数据可视化的同学应该对 Python 里的 Matplotlib 库并不陌生。它是一个基于 Python 的开源数据绘图包,仅需几行代码就可以帮助开发者生成直方图、功率谱、条形图、散点图等。这个库里有个非常实用的扩展包——FuncAnimation,可以让我们的静…

计算机制作ppt教程,ppt怎么做?手机电脑超全PPT制作教程_教你做出完整的PPT

电脑版PPT制作方法步骤 1、打开“PPT”软件&#xff0c;在首页输入标题和副标题。 2、调整标题和副标题的位置&#xff0c;在左边方框内单击鼠标右键。 3、点击“新建幻灯片”&#xff0c;选择“插入”&#xff0c;点击“图片”。 4、选择要插入的图片后点击“插入”&#xff0…

ppt复制切片器_ppt中制作动态图表,并不难,使用powerbi三步搞定

今天跟大家分享下,如何在ppt中实现动态图表的效果,如下图,当我使用切片器选择对应的项目,图表就会跟随变化,之前视频跟大家分享过制作方法,很多粉丝表示没有看懂,今天就详细的跟大家介绍下 一、制作步骤 首先跟大家说下制作的步骤,在这里我们是使用powerbi来制作图表,…

几分钟就可做出的酷炫PPT动画效果

PPT在平常生活中&#xff0c;用于“工作汇报”、“产品发布”、“演讲”、“课件”等场景&#xff0c;一份PPT的质量就决定整个事件成功与否&#xff0c;一份带有炫酷动画的PPT更能让整个事件效果更佳。 当然&#xff0c;除了这些大神的作品之外&#xff0c;在工作PPT中&#…

如何制作动态PPT,像播放电影一样,同时怎么插入音乐

今天呢&#xff0c;看到有很多人问我怎么制作动态PPT&#xff0c;同时怎么插入音乐&#xff0c;因此&#xff0c;这里给大家分享一下怎么制作一个动态的PPT&#xff0c;这个只是一个简单的介绍&#xff0c;如果需要制作一个炫丽的动态PPT&#xff0c;可以给我留言&#xff0c;也…

开场PPT动画怎么做炫酷

PPT动画应用的好&#xff0c;可以做出电影级动态特效&#xff0c;islide将通过分享粒子动画制作教程&#xff0c;教会大家打造炫酷的PPT开场动画。 islidePPT素材   下面直接进入制作教程&#xff1a; 第一步&#xff1a;插入一张星空背景图并调整图片大小&#xff0c;使其…

查询数据库中所有表以及表结构

查询数据库中所有表以及表结构 贴两个两段代码和截图吧&#xff0c;用的人自己拿去改&#xff08;MYSQL&#xff09; SQL片段1&#xff1a;&#xff08;这个只是查出来相应的表结构&#xff09; 在这里插入代码片 SELECTTABLE_NAME AS tableName,COLUMN_NAME AS columnName,…

表结构数据

什么是表结构数据 表结构数据中的“表”来源于关系型数据库中的“table”&#xff0c;关系型数据库中的数据都是以表结构进行存储的&#xff0c;它是数据分析工具中最基本的存储结构。 在关系型数据库中一个数据库可以有多个数据表&#xff0c;每个数据表都是由固定列和任意…

数据库表结构关系图生成

Navicat for mySQL 如有你有这个数据库的工具的话&#xff0c;就可以直接将你建好的数据库表直接生成模型图。 打开Navicat&#xff0c;连接我们的数据库 打开数据库表 点击右下角的几个按钮 随便点击试一下&#xff0c;最后你会发现点击从左数第三个的时候&#xff0c;会变成…