Apache POI 5.2.2 版本 getFldSimpleListList() 方法移除及解决方案

在 Apache POI 5.2.2 版本中,getFldSimpleListList() 方法已被移除,如果继续使用该方法会遇到 '找不到符号' 的错误。本文将介绍如何使用 getFldSimpleList() 方法来替代 getFldSimpleListList() 方法,并提供相应的代码示例。

问题描述

在使用 Apache POI 5.2.2 版本操作 Word 文档时,如果代码中使用了 getFldSimpleListList() 方法来获取简单域列表,编译时会提示找不到该方法。

例如,以下代码在 Apache POI 5.2.2 版本中会报错:javaList fields = run.getCTR().getFldSimpleListList();

解决方案

在 Apache POI 5.2.2 版本中,getFldSimpleListList() 方法已被 getFldSimpleList() 方法替代。 因此,需要将代码中所有使用 getFldSimpleListList() 方法的地方替换为 getFldSimpleList() 方法。

例如,将上述代码修改为:javaList fields = run.getCTR().getFldSimpleList();

代码示例

以下是修改后的 copyBookmarkContent 方法的完整代码:javaprivate static void copyBookmarkContent(String bookmarkName, XWPFDocument sourceDoc, XWPFDocument targetDoc) { for (XWPFParagraph paragraph : sourceDoc.getParagraphs()) { for (XWPFRun run : paragraph.getRuns()) { List fields = run.getCTR().getFldSimpleList(); // 使用 getFldSimpleList() 方法 for (CTSimpleField field : fields) { if (field.getInstr().contains(' FORMTEXT ')) { String fieldValue = field.getInstr().split('"')[1]; if (fieldValue.equals(bookmarkName)) { targetDoc.createParagraph().createRun().setText(paragraph.getText()); break; } } } } }}

总结

在 Apache POI 5.2.2 版本中,getFldSimpleListList() 方法已被移除,使用 getFldSimpleList() 方法可以替代该方法。在更新 Apache POI 版本后,请检查代码中是否使用了 getFldSimpleListList() 方法,并及时进行修改。

Apache POI 5.2.2 版本 getFldSimpleListList() 方法移除及解决方案

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

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