Java ApachePOI,XWPF:移除后剩余的回车
更具体地说,在我的代码中,我成功地从段落或其运行中删除了内容。这是可行的,但在移除后仍剩下一个车厢返回 我的计划是从Word文档中删除一个句子,并将较低的内容上移到上一行,即上一个句子所在的位置 此外,我还希望通过忽略按运行的分隔来避免一个句子被拆分。为此,我选取段落的整个文本,对其进行转换,在第一次运行时设置该文本,并删除所有后续运行。但这似乎给我留下了恼人的马车归来 下面是我的一段代码:Java ApachePOI,XWPF:移除后剩余的回车,java,ms-word,apache-poi,xwpf,Java,Ms Word,Apache Poi,Xwpf,更具体地说,在我的代码中,我成功地从段落或其运行中删除了内容。这是可行的,但在移除后仍剩下一个车厢返回 我的计划是从Word文档中删除一个句子,并将较低的内容上移到上一行,即上一个句子所在的位置 此外,我还希望通过忽略按运行的分隔来避免一个句子被拆分。为此,我选取段落的整个文本,对其进行转换,在第一次运行时设置该文本,并删除所有后续运行。但这似乎给我留下了恼人的马车归来 下面是我的一段代码: String paragraphText = paragraph.getText();
String paragraphText = paragraph.getText();
// The prefix and suffix are some simple substrings.
String removement = prefix + deletionClause + suffix;
paragraphText = paragraphText.replace(removement, "");
paragraph.getRuns().get(0).setText(paragraphText,0);
for(int j = 1; j < paragraph.getRuns().size(); j++)
{
paragraph.removeRun(j);
}
String paragraphText=段落.getText();
//前缀和后缀是一些简单的子字符串。
字符串移除=前缀+删除子句+后缀;
paragraphText=paragraphText.replace(removement,“”);
graph.getRuns().get(0).setText(paragraphText,0);
对于(int j=1;j
有一种方法
removeCarriageReturn()
,但我还没有找到。我想知道这个回车符是否不属于该段落,但试图通过访问跟随者来删除它,只是删除了下面段落的文本,但仍然不是该回车符。请参阅“谢谢”。成功了。但我发现这种方法有一个问题。当我试图第二次重申这些段落时,将抛出一个异常,因为它现在缺少一个链接,因为该段落已被删除。有没有办法通过将上一段和下一段相互链接来缩小差距?是的,你是对的。虽然doc.getDocument().getBody().removeP(pPos)代码>起作用,它不会更新XWPFDocument
的段落列表。因此,它将破坏段落迭代器和对该列表的其他访问,因为该列表仅在再次读取文档时更新。因此,更好的方法是使用doc.removeBodyElement(pPos)代码>取而代之。在中查看我的编辑。你是对的。我很兴奋能尝试你的解决方案,以至于我没有注意到你的编辑。谢谢,我很确定梅的问题已经解决了。如果我能帮助你,我很高兴。我的编辑是昨天的,是对你评论的回应。所以你以前没有机会注意到我的编辑。否则会很奇怪;-)。