【Apache POI 新建、读取、编辑pptx文件】

本文详细介绍了如何通过SpringBoot项目使用ApachePOI的XSLF模块创建、读取PowerPoint文件,包括添加文本框、填充表格数据以及生成饼状图的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

本文演示通过SpringBoot项目,通过XSLF相关API处理pptx相关文件操作:


提示:以下是本篇文章正文内容,下面案例可供参考

一、XSLF是什么?

博客:查看Apache POI 常用模块及功能

XSLF 是 Apache POI 的一部分,全称为 XML Slide Show Format,它是专门为处理 Microsoft PowerPoint 的 Office Open XML (.pptx) 格式文件而设计的 Java API。
XSLF 提供了丰富的 API 接口,通过 XSLF,直接在 Java 应用程序中创建、读取、修改和保存 PowerPoint (.pptx) 演示文稿文件。

二、使用步骤

1.导入apache poi相关依赖

pom代码如下:

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

2.重要类及功能说明

XMLSlideShow :提供了创建、读取、修改 PowerPoint 文档内容的功能。
XSLFTextBox :文本框对象
XSLFTextParagraph :文本段落对象,它可以有自己的样式如居中等
XSLFTextRun :是包含单个连续文本片段的对象,它可以有自己的字体样式、颜色、大小等属性

3.创建一个ppt,添加一个文本框并填入内容

代码如下:

	 public void createdPpt() throws IOException {
   
        XMLSlideShow ppt = new XMLSlideShow();
        
        XSLFSlide slide = ppt.createSlide(); //创建一个新的幻灯片
        XSLFTextBox shape = slide.createTextBox(); //在幻灯片上新建一个文本框对象
        XSLFTextParagraph paragraph = shape.addNewTextParagraph(); //在文本框中添加一个新的文本段落
        XSLFTextRun titleTextRun = paragraph.addNewTextRun(); //在文本段落中添加文本,
        titleTextRun.setText("这是文本内容"); // 设置文本文字
        titleTextRun.setFontSize(48.0); // 设置字体大小(假设单位为磅)
        titleTextRun.setFontColor(Color.BLACK); // 设置字体颜色

        // 设置段落的一些样式
        paragraph.setTextAlign(TextParagraph.TextAlign.CENTER); // 居中对齐

        Rectangle2D.Double rect = new Rectangle2D.Double(100.0, 100.0, 400.0, 100.0); //设置图形(文本框)的位置及大小,以幻灯片的左上角为原点,参数1指x轴与原点在x方向上的距离,参数2指y轴距原点在y方向上的距离,参数3指宽度,参数4指高度。
        shape.setAnchor(rect); //将图形的位置大小参数赋值给文本框
        
        File outFile = new File("D:\\Desktop\\ppt结果演示11.pptx"); //新建文件
        if (outFile != null) {
   
            outFile.delete();
        }
        
		//导出结果
        FileOutputStream out = new FileOutputStream(outFile);
        ppt.write(out);
        out.close();

        System.out.println("文件生成成功!!!");

4.读取已有pptx文件,在表格模板中填充数据

ppt中第二页幻灯片的的表格模板:
ppt中第二页幻灯片的表格
代码如下:

  public void fillingTable() throws IOException {
   
  		/*读取已有的的pptx文件*/
       File file = new File("B:\\Desktop\\ppt模板.pptx");
       FileInputStream fileInputStream = new FileInputStream(file);
       XMLSlideShow ppt = new XMLSlideShow(fileInputStream);

       List<XSLFSlide> slideList = ppt.getSlides
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值