关于java poi读取word段落内容疑问

发布于 2021-12-03 18:14:51 字数 2957 浏览 975 评论 6

word1打印的段落内容

word2打印的段落内容

代码如下


    /**
     * 替换段落中的内容
     * @param paragraphList  段落集合
     * @param param          要替换的内容map集合
     * @param doc            CustomXWPFDocument对象
     */
    public static void processParagraphs(List<XWPFParagraph> paragraphList,Map<String, Object> param,CustomXWPFDocument doc){
        if(paragraphList != null && paragraphList.size() > 0){
            for(XWPFParagraph paragraph:paragraphList){
                List<XWPFRun> runs = paragraph.getRuns();
                for (XWPFRun run : runs) {
                    String text = run.getText(0);                                                                       //分段是poi来完成的,但是它分段的时候可能出现${CJ_CP}${CL_LX}这种情况
                    System.out.println("text---->"+text);
                    if(text != null){
                        boolean isSetText = false;
                        for (Entry<String, Object> entry : param.entrySet()) {
                            String key = entry.getKey();
                            if(text.indexOf(key) != -1){
                                isSetText = true;
                                Object value = entry.getValue();
                                if (value instanceof String) {//文本替换
                                    text = text.replace(key, value.toString());                                         //FIXME 图片替换代码删掉了
                                    break;
                                }
                            }
                        }
                        if(isSetText){
                            run.setText(text,0);
                        }
                    }
                }
            }
        }
    }




造成两次段落内容分割不同的情况我大致知道,word2每一行纯手打,word1复制过来的。但是有时候纯手打也会出现一个替换字符分行,或者多个替换字符在一行的情况。例如${AAA}${BBB} 被解析成了一个段落。

求大神,这个问题困惑了很久。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

凯凯我们等你回来 2021-12-08 18:56:46

我也遇到这个问题  拆分错了 没法替换    楼主解决了说一下

断爱 2021-12-08 12:55:26

https://github.com/Sayi/poi-tl  源码在这里。

天涯离梦残月幽梦 2021-12-08 09:25:23

。。。图片替换被你删掉了,顺便问下,每次图片都在文档最后..

命硬 2021-12-08 01:11:49

引用来自“xdoc_osc”的评论

xdoc是取到后合并了,转成了自己的格式,有兴趣可以看看:
http://xdoc.aliapp.com

猫九 2021-12-07 21:29:48

引用来自“xdoc_osc”的评论

我也遇到过,这种情况普遍存在,word目标是显示,不是数据处理

虐人心 2021-12-07 07:45:15

我也遇到过,这种情况普遍存在,word目标是显示,不是数据处理

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文