我有一个单词模板,其中有多个相似的表格以及与放置在它们前面的这些表格相关的一些段落。根据数据量,我填充了一些表格,其他的不需要,所以有段落。
我需要删除这些表格和段落。
正如您在图片中看到的,我需要删除表 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(使用前将#替换为@)