如何使用apache poi从java中的docx中删除包含数据的表格和段落

2023-12-08

我有一个单词模板,其中有多个相似的表格以及与放置在它们前面的这些表格相关的一些段落。根据数据量,我填充了一些表格,其他的不需要,所以有段落。

my_img

我需要删除这些表格和段落。 正如您在图片中看到的,我需要删除表 2 及其段落表段落

请帮助我该怎么做。我尝试使用 document.removeBodyElement(pos) ,但它没有帮助。

int startIndex = 0;
int endIndex = 0;
startIndex = doc.getPosOfTable(doc.getTables().get(0));
startIndex++;
endIndex = doc.getPosOfTable(doc.getTables().get(1));
System.out.println("startIndex "+ startIndex);
System.out.println("endIndex "+ endIndex);

for(int i=startIndex; i<=endIndex; i++){
    doc.removeBodyElement(i);
}

问题是使用removeBodyElement 移动其余元素并重新计算它们的索引。这意味着,如果您想删除元素#4到#6(包括两个表之间的空段落),那么在删除元素#4(空行)后,这是您的第二个表(而不是其标题段落)将成为元素#5等。基本上,这个循环变成了跳跃two元素(i+=2代替i++),这样就只删除了你想要删除的一半,甚至删除了你不想删除的内容。

因此,您只需颠倒循环的顺序:

for ( int i = endIndex; i >= startIndex; i-- ) {
    System.out.println( "removing bodyElement #" + i );
    document.removeBodyElement( i );
}

我已经用模板对其进行了测试,与您的示例类似,它工作正常!希望能帮助到你。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用apache poi从java中的docx中删除包含数据的表格和段落 的相关文章

随机推荐

  • 从名称实例化泛型的最佳方法是什么?

    假设我只有 MyCustomGenericCollection of MyCustomObjectClass 形式的字符串形式的泛型类名 并且不知道它来自哪个程序集 那么创建该对象的实例的最简单方法是什么 如果有帮助 我知道该类实现 IMy
  • Tomcat连接池,为Web应用程序安装jdbc驱动程序

    我正在制作一个网络应用程序Tomcat 6作为容器 我正在尝试使用连接池 我正在使用的jdbc驱动程序是jtds 1 2 2 当驱动程序 jar 放在下面时 池工作正常 Catalina Home lib 但我的托管提供商不允许我这样做 当
  • 最佳实践:在 PHP 中使用长的多行字符串?

    注意 如果这是一个非常简单的问题 我很抱歉 但我对代码的格式有点强迫症 我有一个类 它有一个函数返回一个字符串 该字符串将构成电子邮件的正文 我希望该文本经过格式化 以便在电子邮件中看起来正确 但也不会让我的代码看起来很时髦 这就是我的意思
  • 核心数据对象唯一ID

    我想向我的托管对象实体模型添加一个唯一的 ID 字段 我知道核心数据不使用 ID 关系 但这是不同的 我需要一种将线程安全数据传递给不同线程的方法 以便新线程可以从该数据中获取托管对象 它可以是任何格式 但最好只是单个对象 变量 值 我可以
  • SQL 错误:ORA-00907:缺少右括号

    我正在使用 Oracle SQL Developer 使用以下命令创建一个基本表 CREATE TABLE chartered flight flight no NUMBER 4 PRIMARY KEY customer id FOREIG
  • 创建仅包含给定类的对象的数组

    好的 我有下面的代码 Objective C FYI 我想知道是否要创建一个 NSMutableArrayc data对象 我该怎么做呢 这有点像声明一个List
  • 如何将用户输入保存在数组中?

    我正在尝试编写一个程序 要求用户输入要保存在医院数据库中的患者数量 即ArraySize 用户必须输入患者的 ID 名字和姓氏 然后根据患者病情的严重程度在数组中对患者的 ID 名字和姓氏进行索引 我的问题是如何将用户输入的 ID 保存为整
  • 测试非默认 App Engine 任务队列

    App Engine 文档给出了example单元测试任务队列 这对于 默认 队列工作正常 但我需要对非默认队列进行单元测试 我从以下行中得到异常 val qsi ltq getQueueStateInfo get non default
  • 当我保存文件时 Sublime Text 正在做什么?

    我正在观看文件fsnotify这是一个Go库 我发现保存文件时会触发很多事件 为什么 Sublime Text 有这么多功能 2013 12 17 20 46 25 event parser go MODIFY 2013 12 17 20
  • 如果另一个值不存在,如何根据一个值从表中选择项目? (雄辩/sql)

    我有一个表 用于存储网站的不同文本块 我目前正在为每个页面选择正确的块以及页面的标题和首选语言 当首选语言不可用时 我想在后备语言中选择相同的文本块 具有相同的标题 块表 columns id slug title language con
  • java.lang.UnsatisfiedLinkError:dlopen 失败:

    当我在项目中添加 so 文件时 我遇到了这个问题 从其他答案来看 我尝试了不同的解决方案 但没有任何解决方案可以帮助我 case 1我曾尝试将 so 放入 src main jniLibs 中 并在 gradle 文件中添加以下行 但出现相
  • 在Java中,当另一个音频文件开始使用key_events时,如何停止前一个音频文件

    我知道 Clip stop 方法 但是当我将它放在 key events 中时它似乎不起作用 它只会导致错误 好吧 我知道为什么会导致错误 因为我要求它基本上停止几行之后才存在的剪辑 但是使用相同的逻辑或接近它 如果可能 我如何重新编码 以
  • Nullable Bool 的编译器错误

    bool ispurchased null var pospurcahsed ispurchased 1 2 它产生异常 无法隐式转换类型 bool 布尔 明确的 存在转换 您是否缺少演员表 我在这里做错了什么 感谢您的支持和考虑 这是不允
  • 如何一次性删除文件和应用程序数据容器值?

    我的应用程序中有一个重置功能 可以将应用程序恢复到默认状态 因为我需要删除我创建的四个文件并删除我在ApplicationDataContainer 这就是我删除文件的方法 try StorageFile file await localf
  • 在 swift 5 中隐藏或禁用 uidocumentinteractioncontroller 的共享按钮

    在我的应用程序中 我使用 QuickLook 框架来查看文档文件 例如 pdf ppt doc 等 但出于隐私考虑 我不希望用户可以与其他人共享此文档 所以请让我知道如何禁用 隐藏共享按钮以及复制粘贴选项 我知道这个问题可以被问很多次并尝试
  • 查找汉明数 - 不是代码或距离

    我目前正在学习C 我在寻找汉明数 numbers其质因数小于或等于 5 当我输入一个数字时n 程序应该输出n th 汉明数 输入和输出以下数字 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6
  • 配置 NUnit 命令行以运行 MonoTouch 测试

    我的 MonoTouch 项目中有一个单元测试 但无法从 MonoDevelop 内部运行 它因 Unix 传输错误 而失败 在网上查了一下 这似乎与 NUnit 测试运行程序崩溃有关 所以我想我应该尝试使用命令行测试运行程序 我使用 Mo
  • 如何以 .m4a 格式录制语音

    我已经创建了一个 iPhone 应用程序来录制 它将记录在 caf 文件中 但我想以 m4a 格式录制 请帮助我做到这一点 Thanks 下面是一个替代代码示例 它将文件编码为 m4a 中的 AAC NSArray dirPaths NSS
  • VSCode 在 React 代码中的 HTML 标签内添加空格

    当我保存下面的代码时 开始从头开始学习 React VS Code 将其格式化为如图所示 ReactDOM render div h1 Hi there name h1 p your lucky number is num p div do
  • 如何使用apache poi从java中的docx中删除包含数据的表格和段落

    我有一个单词模板 其中有多个相似的表格以及与放置在它们前面的这些表格相关的一些段落 根据数据量 我填充了一些表格 其他的不需要 所以有段落 我需要删除这些表格和段落 正如您在图片中看到的 我需要删除表 2 及其段落表段落 请帮助我该怎么做