Java使用Spire.Presentation在PowerPoint中添加或删除表格行与列

 更新时间:2026年02月27日 10:04:23   作者:用户033212666367  
在日常开发中,Java 开发者常需自动化生成报告PPT,手动编辑PowerPoint 表格行与列效率低下,尤其批量操作时易出错,Spire.Presentation for Java 库提供高效解决方案,本文分享实用代码与步骤,助你快速上手,需要的朋友可以参考下

引言

在日常开发中,Java 开发者常需自动化生成报告PPT,手动编辑PowerPoint 表格行与列效率低下,尤其批量操作时易出错。Spire.Presentation for Java 库提供高效解决方案,支持添加行与列、删除行与列等 PPT 表格操作,无需 Office 依赖。基于最新 7.24.x 版本,本文分享实用代码与步骤,助你快速上手。

Spire.Presentation for Java 库介绍与安装

Spire.Presentation for Java 是 e-iceblue 推出的专业PPT处理库,支持PPTX创建、编辑、转换与表格高级操作,如动态添加行与列、删除行与列。最新7.24.x版本优化了表格性能,支持大表格批量处理,适用于报表自动化场景。

安装步骤

  1. Maven(推荐):
    pom.xml 添加依赖:
  <repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.presentation</artifactId>
        <version>11.1.3</version>
    </dependency>
</dependencies>
  1. 验证:新建 Java 项目,运行简单代码加载 PPTX 确认环境。

准备就绪后即可操作表格。该库体积小、API 直观,远超手动 VBA。

Java 在 PowerPoint 中添加表格的行与列

添加行与列 核心使用 ITable 接口的 append()insert() 方法,支持克隆现有行/列快速扩展。

步骤

  1. 创建 Presentation 对象,加载或新建幻灯片。
  2. 在幻灯片添加表格:shapes.appendTable(x, y, widths, heights),或者使用 presentation.getSlides().get().getShapes() 获取已存在的表格。
  3. 添加行:克隆行后 tableRows.append(clonedRow)
  4. 添加列:类似 columnsList.append(clonedColumn)
  5. 填充数据,保存 PPTX。

完整代码示例(添加行与列):

import com.spire.presentation.*;

public class AddRowAndColumn {

    public static void main(String[] args) throws Exception {

        //加载示例文档
        Presentation presentation = new Presentation();
        presentation.loadFromFile("C:\Users\Administrator\Desktop\input.pptx");

        //获取表格
        ITable table = null;
        for (Object shape : presentation.getSlides().get(0).getShapes()) {
            if (shape instanceof ITable) {
                table = (ITable) shape;

                //将最后一行作为新行添加到表格下方
                int rowCount = table.getTableRows().getCount();
                TableRow row = table.getTableRows().get(rowCount - 1);
                table.getTableRows().append(row);

                //获取新行,并设置每个单元格的文本
                rowCount = table.getTableRows().getCount();
                row = table.getTableRows().get(rowCount - 1);
                row.get(0).getTextFrame().setText("美国");
                row.get(1).getTextFrame().setText("华盛顿");
                row.get(2).getTextFrame().setText("北美洲");
                row.get(3).getTextFrame().setText("9372610");

                //将最后一列作为新列添加到表格右方
                int colCount = table.getColumnsList().getCount();
                TableColumn column =table.getColumnsList().get(colCount-1);
                table.getColumnsList().add(column);

                //获取新列,并设置每个单元格的文本
                colCount = table.getColumnsList().getCount();
                column = table.getColumnsList().get(colCount-1);
                column.get(0).getTextFrame().setText("人口");
                column.get(1).getTextFrame().setText("32370000");
                column.get(2).getTextFrame().setText("7350000");
                column.get(3).getTextFrame().setText("15040000");
                column.get(4).getTextFrame().setText("26500000");
                column.get(5).getTextFrame().setText("329740000");
            }
        }

        //保存文档
        presentation.saveToFile("output/AddRowAndColumn.pptx", FileFormat.PPTX_2013);
    }
}

常见问题:克隆后记得更新单元格文本,避免数据重复。批量添加时用循环,性能优异。

Java 在 PowerPoint 中删除表格的行与列

删除行与列使用 removeAt(index, isClone),第二个参数 false 表示直接移除。注意索引从0开始,避免越界。

步骤

  1. 加载 PPT,获取 ITable
  2. 删除行tableRows.removeAt(rowIndex, false)
  3. 删除列columnsList.removeAt(colIndex, false)
  4. 处理异常(如空表),保存。

完整代码示例(删除第二行和第二列):

import com.spire.presentation.FileFormat;
import com.spire.presentation.ITable;
import com.spire.presentation.Presentation;

public class DeleteRowAndColumn {

    public static void main(String[] args) throws Exception {

        //加载示例文档
        Presentation presentation = new Presentation();
        presentation.loadFromFile("C:\Users\Administrator\Desktop\input.pptx");

        //获取表格
        ITable table = null;
        for (Object shape : presentation.getSlides().get(0).getShapes()) {
            if (shape instanceof ITable) {
                table = (ITable) shape;

                //删除第二列
                table.getColumnsList().removeAt(1, false);

                //删除第二行
                table.getTableRows().removeAt(1, false);
            }
        }

        //保存文档
        presentation.saveToFile("output/DeleteRowAndColumn.pptx", FileFormat.PPTX_2013);
    }
}

常见问题:删除后索引变化,建议倒序遍历。空表检查用 getCount() > index

总结

掌握 Spire.Presentation for Java 的在幻灯片添加行与列、删除行与列操作,可大幅提升处理 PowerPoint 演示文稿的自动化效率。立即运行以上代码实践,结合循环处理批量报表。

到此这篇关于Java使用Spire.Presentation在PowerPoint中添加或删除表格行与列的文章就介绍到这了,更多相关Java PowerPoint添加或删除行与列内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java中json使用方法_动力节点Java学院整理

    Java中json使用方法_动力节点Java学院整理

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式, json是个非常重要的数据结构,在web开发中应用十分广泛。下面通过本文给大家讲解Java中json使用方法,感兴趣的朋友一起看看吧
    2017-07-07
  • Spring Security中用户名和密码的验证完整流程

    Spring Security中用户名和密码的验证完整流程

    本文给大家介绍Spring Security中用户名和密码的验证完整流程,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,感兴趣的朋友一起看看吧
    2025-06-06
  • MyBatis中resultType属性的使用

    MyBatis中resultType属性的使用

    这篇文章主要介绍了MyBatis中resultType属性的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-09-09
  • Spring+Junit4进行接口测试实例代码

    Spring+Junit4进行接口测试实例代码

    这篇文章主要介绍了Spring+Junit4进行接口测试实例代码,涉及pom.xml、bean的配置,以及接口测试代码等相关内容,小编觉得还是挺不错的,这里分享给大家,需要的朋友可以参考下
    2018-01-01
  • Mybatisplus多表关联分页查询多种实现方式

    Mybatisplus多表关联分页查询多种实现方式

    本文主要介绍了Mybatisplus多表关联分页查询多种实现方式,包括使用XML自定义SQL、Wrapper搭配自定义SQL、使用DTO与自定义SQL及结合PageHelper实现分页查询,感兴趣的可以了解一下
    2025-03-03
  • 最全LocalDateTime、LocalDate、Date、String相互转化的方法

    最全LocalDateTime、LocalDate、Date、String相互转化的方法

    大家在开发过程中必不可少的和日期打交道,对接别的系统时,时间日期格式不一致,每次都要转化,本文为大家准备了最全的LocalDateTime、LocalDate、Date、String相互转化方法,需要的可以参考一下
    2023-06-06
  • @Slf4j 如何实现日志输入到外部文件

    @Slf4j 如何实现日志输入到外部文件

    这篇文章主要介绍了@Slf4j 如何实现日志输入到外部文件,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • MyBatis 和 jeesite多表查询示例详解

    MyBatis 和 jeesite多表查询示例详解

    这篇文章主要介绍了MyBatis 和 jeesite多表查询,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • Java多输入框查询需求实现方法详解

    Java多输入框查询需求实现方法详解

    这篇文章主要给大家介绍了Java多输入框查询需求实现的相关资料,文中通过代码以及图文介绍的非常详细,对大家学习或者使用Java具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-10-10
  • Java 定时任务技术趋势详情

    Java 定时任务技术趋势详情

    这篇文章主要介绍了Java 定时任务技术趋势详情,定时任务是每个业务常见的需求,比如每分钟扫描超时支付的订单,每小时清理一次数据库历史数据,每天统计前一天的数据并生成报表等,下文更多相关资料,需要的小伙伴可以参考一下
    2022-05-05

最新评论