Apache POI 5.2.2 版本更新:修复 Word 文档书签操作错误

在 Apache POI 版本 5.2.2 中,CTBookmark 类的方法已经发生了变化。您需要使用 getBookmarkStartList() 方法来获取书签的起始位置。以下是修改后的代码:

// 获取书签的内容
public static String getBookmarkContent(XWPFDocument doc, String bookmarkName) {
    for (XWPFParagraph paragraph : doc.getParagraphs()) {
        for (XWPFRun run : paragraph.getRuns()) {
            for (CTBookmark bookmark : run.getCTR().getBookmarkStartList()) {
                if (bookmark.getName().equals(bookmarkName)) {
                    return run.getText(0);
                }
            }
        }
    }
    return null;
}

// 替换书签的内容
public static void replaceBookmarkContent(XWPFDocument doc, String bookmarkName, String content) {
    for (XWPFParagraph paragraph : doc.getParagraphs()) {
        for (XWPFRun run : paragraph.getRuns()) {
            for (CTBookmark bookmark : run.getCTR().getBookmarkStartList()) {
                if (bookmark.getName().equals(bookmarkName)) {
                    run.setText(content, 0);
                }
            }
        }
    }
}

请注意,此修改适用于 Apache POI 版本 5.2.2 及更高版本。如果您使用的是较早的版本,请参考相应版本的 API 文档来获取正确的方法。

Apache POI 5.2.2 版本更新:修复 Word 文档书签操作错误

原文地址: https://www.cveoy.top/t/topic/fL9d 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录