gpt4 book ai didi

apache - 如何使用 XWPF 删除段落 - Apache POI

转载 作者:行者123 更新时间:2023-12-01 19:53:48 30 4
gpt4 key购买 nike

我正在尝试从使用 Apache poi XWPF 生成的 .docx 文档中删除一段。我可以使用 HWPF 轻松地使用 .doc word 文档来完成此操作,如下所示:

    for (String paraCount : plcHoldrPargrafDletdLst) {
Paragraph ph = doc.getRange().getParagraph(Integer.parseInt(paraCount));
System.out.println("Deleted Paragraph Start & End: " + ph.getStartOffset() +" & " + ph.getEndOffset());
System.out.println("Deleted Paragraph Test: " + ph.text());
ph.delete();
}

我尝试用同样的方法

doc.removeBodyElement(Integer.parseInt(paraCount));

但不幸的是,还不够成功,无法得到我想要的结果。结果文档,我看不到删除的段落。关于如何在 XWPF 中实现类似功能的任何建议。

最佳答案

好吧,这个问题有点老了,可能不再需要了,但我刚刚找到了与建议的解决方案不同的解决方案。

希望下面的代码可以帮助遇到同样问题的人

    ...
FileInputStream fis = new FileInputStream(fileName);
XWPFDocument doc = new XWPFDocument(fis);
fis.close();
// Find a paragraph with todelete text inside
XWPFParagraph toDelete = doc.getParagraphs().stream()
.filter(p -> StringUtils.equalsIgnoreCase("todelete", p.getParagraphText()))
.findFirst().orElse(null);
if (toDelete != null) {
doc.removeBodyElement(doc.getPosOfParagraph(toDelete));
OutputStream fos = new FileOutputStream(fileName);
doc.write(fos);
fos.close();
}

关于apache - 如何使用 XWPF 删除段落 - Apache POI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29343921/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com