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添加或删除行与列内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • WebUploader客户端批量上传图片 后台使用springMVC

    WebUploader客户端批量上传图片 后台使用springMVC

    这篇文章主要为大家详细介绍了WebUploader客户端批量上传图片,后台使用springMVC接收实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • Java8与Scala中的Lambda表达式深入讲解

    Java8与Scala中的Lambda表达式深入讲解

    这篇文章主要给大家介绍了关于Java8与Scala中Lambda表达式的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11
  • java编程实现屏幕截图(截屏)代码总结

    java编程实现屏幕截图(截屏)代码总结

    这篇文章主要介绍了java编程实现屏幕截图(截屏)代码,结合3个实例总结分析了Java截屏时页面抓取及图片保存的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-11-11
  • Java结构性设计模式中的装饰器模式介绍使用

    Java结构性设计模式中的装饰器模式介绍使用

    装饰器模式又名包装(Wrapper)模式。装饰器模式以对客户端透明的方式拓展对象的功能,是继承关系的一种替代方案,本篇文章以虹猫蓝兔生动形象的为你带来详细讲解
    2022-09-09
  • Java17中record替代Lombok部分功能使用场景探究

    Java17中record替代Lombok部分功能使用场景探究

    这篇文章主要介绍了使用Java17中的record替代Lombok的部分功能,本文来为大家小小的总结下,我们可以在哪些地方,利用record来替换Lombok
    2024-01-01
  • java实现猜拳游戏试题

    java实现猜拳游戏试题

    这篇文章主要为大家详细介绍了java实现猜拳游戏试题,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-03-03
  • 如何解决springcloud feign 首次调用100%失败的问题

    如何解决springcloud feign 首次调用100%失败的问题

    这篇文章主要介绍了如何解决springcloud feign 首次调用100%失败的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • SpringBoot-JPA删除不成功,只执行了查询语句问题

    SpringBoot-JPA删除不成功,只执行了查询语句问题

    这篇文章主要介绍了SpringBoot-JPA删除不成功,只执行了查询语句问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • MyBatis批量插入大量数据(1w以上)

    MyBatis批量插入大量数据(1w以上)

    MyBatis进行批量插入数时,一次性插入超过一千条的时候MyBatis开始报错,本文主要介绍了MyBatis批量插入大量数据的解决方法,感兴趣的可以了解一下
    2022-01-01
  • Java数组创建的3种方法6种写法代码示例

    Java数组创建的3种方法6种写法代码示例

    这篇文章主要给大家介绍了关于Java数组创建的3种方法6种写法,在Java中我们可以使用关键字new来创建一个数组,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-01-01

最新评论