小编KC *_*C L的帖子

使用Apache POI替换docx文本框中的文本

我正在使用Apache POI来替换docx的单词.对于正常段落,我成功使用XWPFParagraph和XWPFRun来替换单词.然后我尝试替换文本框中的单词.我引用了这个/sf/answers/1811407951/来获取文本框中的文本.我成功在控制台中打印文本.但是,我无法替换文本框中的单词.以下是我的一些代码:

    for (XWPFParagraph paragraph : doc.getParagraphs()) {
        XmlObject[] textBoxObjects =  paragraph.getCTP().selectPath("declare namespace w='http://schemas.openxmlformats.org/wordprocessingml/2006/main' declare namespace wps='http://schemas.microsoft.com/office/word/2010/wordprocessingShape' .//*/wps:txbx/w:txbxContent");
            for (int i =0; i < textBoxObjects.length; i++) {
                XWPFParagraph embeddedPara = null;
                try {
                XmlObject[] paraObjects = textBoxObjects[i].
                    selectChildren(
                    new QName("http://schemas.openxmlformats.org/wordprocessingml/2006/main", "p"));

                for (int j=0; j<paraObjects.length; j++) {
                    embeddedPara = new XWPFParagraph(CTP.Factory.parse(paraObjects[j].xmlText()), paragraph.getBody());
                    List<XWPFRun> runs = embeddedPara.getRuns();
                    for (XWPFRun r : runs) {
                        String text = r.getText(0);
                        if (text != null && text.contains(someWords)) {
                            text = text.replace(someWords, "replaced");
                            r.setText(text, …
Run Code Online (Sandbox Code Playgroud)

java apache ms-word apache-poi

2
推荐指数
1
解决办法
3842
查看次数

标签 统计

apache ×1

apache-poi ×1

java ×1

ms-word ×1