使用poi替换ppt文件内的变量参数,包含ppt和pptx格式
依赖的jar包

<dependencies><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.0</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-scratchpad</artifactId><version>4.1.0</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>4.1.0</version></dependency><dependency><groupId>fr.opensagres.xdocreport</groupId><artifactId>xdocreport</artifactId><version>2.0.2</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml-schemas</artifactId><version>4.1.0</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>ooxml-schemas</artifactId><version>1.4</version></dependency></dependencies>
package pptreplace;import convert.uuid.UuidUtil;
import org.apache.poi.hslf.record.Slide;
import org.apache.poi.hslf.usermodel.HSLFShape;
import org.apache.poi.hslf.usermodel.HSLFSlide;
import org.apache.poi.hslf.usermodel.HSLFSlideShow;
import org.apache.poi.hslf.usermodel.HSLFTextShape;
import org.apache.poi.sl.usermodel.SlideShow;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFShape;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFTextShape;import java.awt.geom.Rectangle2D;
import java.io.*;
import java.util.List;public class PptxReplaceTest {public static void main(String[] args) throws IOException {
//        // 获取PPT文件
//        FileInputStream is = new FileInputStream("D:\\2.pptx");  //读pptx存放的路径
//        XMLSlideShow ppt = new XMLSlideShow(is);
//        is.close();
//        for (XSLFSlide slide : ppt.getSlides()) {
//            // 获取每一张幻灯片中的shape
//            for (XSLFShape shape : slide.getShapes()) {
//                if (shape instanceof XSLFTextShape) {
//                    XSLFTextShape txShape = (XSLFTextShape) shape;
//                    if (txShape.getText().contains("{time}")) {
//                        // 替换文字内容
//                        txShape.setText(txShape.getText().replace(
//                                "{time}", "time1"));
//                    }
//                }
//            }
//        }FileInputStream is = new FileInputStream("C:\\Users\\Desktop\\11.ppt");SlideShow ppt = new HSLFSlideShow(is);List<HSLFSlide> slides = ppt.getSlides();for(HSLFSlide slide : slides){List<HSLFShape> shapes = slide.getShapes();for (HSLFShape shape : shapes){if(shape instanceof HSLFTextShape){HSLFTextShape textShape = (HSLFTextShape) shape;if(textShape.getText().contains("{{test}}")){textShape.setText(textShape.getText().replace("{{test}}","chaoping amazing"));}}}}String filename = "C:\\Users\\Desktop\\" +  UuidUtil.getUUID() + ".ppt";System.out.println(filename);FileOutputStream out = new FileOutputStream(filename);ppt.write(out);out.close();
//        FileOutputStream out = new FileOutputStream("ppt测试.ppt");
//        ppt.write(out);
//        out.close();}
}

使用poi替换ppt文件内的变量参数,包含ppt和pptx格式相关推荐

  1. 「Shell」- 使用环境变量,替换在文件中的变量(envsubst) @20210401

    问题描述 在部署服务时,脚本的部分内容是是动态生成的.我们可以使用 sed 进行替换,但是我们发现了更好的方法. 通过使用 envsubst 命令,可以替换在文件中的变量引用(类似于其他编程的模板引擎 ...

  2. ppt文件被加密怎么解开,ppt复制打印限制怎么解除?

    ppt移除编辑密码,ppt有密码如何解开?[亲测可用]ppt文件密码解密,用「密码帝」 简直NB!非常简单手机电脑都可以用,一键轻松在线解密!不用下载安装任何软件!,百度搜索密码帝就可以了,

  3. 怎样将PPT文件转换为Word文档精美ppt模板下载

    Word 转换为PPT,可能你很轻率做到,然而反之把PPT转换为Word你懂得吗?我之前始终用一个很笨的措施,即便把里面的文字一段一段粘出来.文字少了还好说,要是文字多了,那个工作量就显而易见了... ...

  4. POI替换word中的指定文字(包含表格,表格中有回车)

    网上可以找到很多POI替换Word中指定文字的代码,然而基本上都没有对文档中的表格中包含的段落(回车)进行处理.自己写了,代码记录如下: /** * *@templetStream 文档的输入流 *@ ...

  5. PPT文件怎么在线翻译的?PPT在线翻译的方法

    PPT文件是我们无论在学习过程中还是商业化的操作中都会用到的一种文件形式将PPT文件进行在线翻译,下面就让小编给大家简单介绍一下PPT在线翻译的方法. 步骤一:PPT文件是需要准备好的,然后通过在浏览 ...

  6. Makefile —— 如何在文件内使用变量?

    在上篇Makefile -- Makefile的规则是什么?make是如何工作的?make的工作方式是什么?文章中我们可以看到[.o]文件的字符串被重复用了三次,如果我们在工程中需要加入一个新的[.o ...

  7. 删除ppt文件内所有同一位置的内容

    转载遵循 CC 4.0 BY-SA 版权协议 在视图中创建宏,然后选中要删除的区域和内容,运行宏.done. Sub Test()Dim oSlide As Slide, oShape As Shap ...

  8. 计算机如何寻找ppt文件,电脑上没保存的PPT怎么找回来

    产品型号:ASUS S340MC 系统版本:Windows 10 软件版本:PowerPoint2019 如果没有打开保存自动恢复,是无法找回的.为预防这种突发性事件,可以设置自动保存. 1.首先在电 ...

  9. vscode 快速调到定义处_vim技巧:在程序代码中快速跳转,在文件内跳转到变量定义处...

    本篇文章介绍 vim 的一些使用技巧: 在程序代码中快速跳转 在文件内跳转到变量定义处 在程序代码中快速跳转 在 vim 中查看代码文件时,可以使用下面命令在程序代码中快速跳转,提高效率. % 跳转到 ...

最新文章

  1. HTML5+CSS学习心得
  2. python 安装easy_install和pip
  3. 统一修改文件下所有图片大小 Python3
  4. 定义工厂(Plant)
  5. 【深度学习】何恺明经典之作—2009 CVPR Best Paper | Dark Channel Prior
  6. linux基础-1.1USB设备(USB1.0以上)连接使用
  7. 51CTO博客 NO.1 大奖赛之后感想---奖品
  8. android 手机工具箱,Android工具箱下载
  9. 清华计算机自主招生试题,2017年清华大学自主招生笔试题
  10. C语言高级输出及进阶
  11. 多站点IIS的架设:主机头法
  12. ms12-20 远程桌面(RDP)3389漏洞
  13. 学生信息管理系统需求文档方案
  14. 多页pdf怎样合并成一页?
  15. 中国20强游戏公司2022上半年年报分析:复合因素下业绩增长承压,海外新兴市场蕴含增长新趋势
  16. 计算机走进画图世界课件,windowsxp走进画图世界教案
  17. 辟谣!微信支付宝收款码将不能用于经营性收款?
  18. office2020与2016版的不同_office2019和2016区别|Office2019新功能
  19. Pandas批量拆分Excel与合并Excel
  20. 山东大学软件学院数据结构练习题

热门文章

  1. 基于RFID定位技术的室内定位原理--RFID室内定位--新导智能
  2. 记Aspose.Word的使用中出现的问题
  3. Android中内存优化
  4. 如何关闭windows杀毒软件
  5. 人机交互系统(1.2) ——深度神经网络(孪生网络)
  6. 关于TCP/IOCP构架中出现的假死连接解决方案
  7. 面试官:说说你对双向绑定的理解?
  8. EXCEL中如何让某些行列固定不动
  9. nginx配置禁止访问目录或禁止访问目录下的文件
  10. 【校招VIP】产品设计分析之文案功底考察