POI操作word 换行

关于POIword换行问题,网上好多都是C+V的用起来各种报错,,其实很简单 只要使用addCarriageReturn()硬回车 addBreak()软回车即可

this.para.insertNewRun(i).setText("换行换行");                      this.para.insertNewRun(i).addCarriageReturn();//硬回车
this.para.insertNewRun(i).addBreak();//软回车
this.para.insertNewRun(i).setText(runText);

只不过这里这个换行感觉是相反的,,出来的结果是(

runText
<换行符>
换行换行
/** 
         * 替换变量 
         * @param para 要替换的段落 
         * @param params 参数 
         */  
        private void replaceInPara(XWPFParagraph para, Map<String, Object> params) {  
           List<XWPFRun> runs;  
           Matcher matcher;  
           if (matcher(para.getParagraphText()).find()) {  
              runs = para.getRuns();  
              for (int i=0; i<runs.size(); i++) {
                 XWPFRun run = runs.get(i);  
                 String runText = run.toString(); 
                 matcher = matcher(runText);
                 if (matcher.find()) { 
                     while ((matcher = this.matcher(runText)).find()) {  
                        runText = matcher.replaceFirst(String.valueOf(params.get(matcher.group(1)))); 
                     }  
                     //直接调用XWPFRun的setText()方法设置文本时,在底层会重新创建一个XWPFRun,把文本附加在当前文本后面,  
                     //所以我们不能直接设值,需要先删除当前run,然后再自己手动插入一个新的run。  
                    System.out.println(runText);
                    if(runText.indexOf("\n")>-1) {
                        String[] text = runText.split("\n");
                        this.para.removeRun(i); 
                        for(int f=text.length-1;f>=0;f--) {
                            System.out.println(f);
                            this.para.insertNewRun(i).setText(text[f]);
                           if(f!=0) {
                            this.para.insertNewRun(i).addCarriageReturn();//硬回车
                           }
                        }
                    }else {
                        this.para.removeRun(i); 
                         this.para.insertNewRun(i).setText(runText);
                    }
                 }  
              }  
           }  
        }  

一如既往地写代码留备用

猜你喜欢

转载自blog.csdn.net/s1040342522/article/details/78456042