在poi操作word模板进行数据替换时,会存在替换的段落需要换行的情况,由于传入的都是字符串,之前在网上搜索过一些处理方法都没有效果,如给字符串添加:“\r”,“\r\n”,"\n","char(11)。"然后只有考虑从代码层次解决这个问题了,实现的代码如下

在传入的字符串以“\r\n”为分段标志

MaptestMap = new HashMap();

String requireStr = "测试需求是主要是整理测试焦点(包括一些界面、输入域、业务流程)";

requireStr+="\r\n可以说,测试需求是告诉你要测什么,而测试用例是告诉你怎么测。";

requireStr+="可以说,测试需求是告诉你要测什么,而测试用例是告诉你怎么测。";

requireStr+="可以说,测试需求是告诉你要测什么,而测试用例是告诉你怎么测。";

requireStr+="可以说,测试需求是告诉你要测什么,而测试用例是告诉你怎么测。";

requireStr+="\r\n可以说,测试需求是告诉你要测什么,而测试用例是告诉你怎么测。";

requireStr+="可以说,测试需求是告诉你要测什么,而测试用例是告诉你怎么测。";

requireStr+="可以说,测试需求是告诉你要测什么,而测试用例是告诉你怎么测。";

requireStr+="可以说,测试需求是告诉你要测什么,而测试用例是告诉你怎么测。";

requireStr+="可以说,测试需求是告诉你要测什么,而测试用例是告诉你怎么测。";

testMap.put("require", requireStr);

在代码中进行分解判断

//获取段落集合

Listparagraphs = document.getParagraphs();

for (XWPFParagraph paragraph : paragraphs) {

//判断此段落时候需要进行替换

String text = paragraph.getText();

if(checkText(text)){

Listruns = paragraph.getRuns();

for (XWPFRun run : runs) {

//替换模板原来位置

String value = changeValue(run.toString(), textMap);

//分段显示的情况

String[] values = value.split("\r\n");

if(values.length > 1) {

run.setText(values[0],0);

for (int i = 1; i < values.length; i++) {

//存在分段则新建一个run

XWPFRun newrun = paragraph.insertNewRun(i);

//copy样式

newrun.getCTR().setRPr(run.getCTR().getRPr());

//换行

newrun.addBreak();

//缩进

newrun.addTab();

newrun.setText(values[i]);

}

break;

}else {

run.setText(value,0);

}

}

}

}

效果如下:

java word模板替换多行_java poi word模板替换段落的换行显示相关推荐

  1. java判断一个文件有多少行_Java关于条件判断练习--统计一个src文件下的所有.java文件内的代码行数(注释行、空白行不统计在内)...

    要求:统计一个src文件下的所有.java文件内的代码行数(注释行.空白行不统计在内) 分析:先封装一个静态方法用于统计确定的.java文件的有效代码行数.使用字符缓冲流读取文件,首先判断是否是块注释 ...

  2. java word模板替换多行_Java动态替换word模板的最佳实践

    poi-tl 基于word的模板渲染(替换)组件 对docx格式的文档增加模板语法,增加渲染模板的方便性,目前支持对段落.页眉.页脚.表格的文本.图片.表单渲染. 对于word模板替换,我们不仅要考虑 ...

  3. java合并sheet行_java poi Excel循环合并行

    //Java poi 实现循环合并行,还是第一次遇到这种问题 //在网上查了很多资料,都不是自己想要的 //以下为自己研究后,写的一点东西,给大家分享,希望对大家能有思路上的启发,也希望大家能提出宝贵 ...

  4. java poi读取word中附件_java poi word读取

    用 poi 读取word文件 . 老是报错 org.apache.poi.poifs.filesystem.NotOLE2FileException: Invalid header signature ...

  5. java 热替换 匿名类_Java 类的热替换

    Java 类的热替换 -- 概念.设计与实现 构建基于 Java 的在线升级系统 孙 鸣 和 邓 辉 2010 年 1 月 14 日发布 Java ClassLoader 技术剖析 在本文中,我们将不 ...

  6. java垃圾回收机制串行_Java垃圾回收机制

    Java语言是一门自动内存管理的语言,不再需要的对象可以通过垃圾回收自动进行内存释放. Java运行时内存区域划分 JVM将Java程序运行时内存区域划分成以下几个部分: 程序计数器(Program ...

  7. java读取word表格中的数据_JAVA获取word表格中数据的方案

    上一个项目的开发中需要实现从word中读取表格数据的功能,在JAVA社区搜索了很多资料,终于找到了两个相对最佳的方案,因为也得到了不少网友们的帮助,所以不敢独自享用,在此做一个分享. 两个方案分别是: ...

  8. poi设置word表格单元格宽度_java poi如何设置word的页面的大小和水平方向?

    展开全部 你好,试试以下代码行不行. package com.sample; import java.awt.color; import java.io.fileoutputstream; impor ...

  9. poi设置word表格单元格宽度_java poi 设置word 格式如表格一类的

    2012-05-29 回答 你好,试试以下代码行不行. package com.sample; import java.awt.color; import java.io.fileoutputstre ...

最新文章

  1. BitMap 内存使用优化
  2. 【算法编程】斐波那契数列
  3. Spring boot(6)---在Eclipse中搭建Spring boot 项目
  4. Windows设置程序 .bat 开机自启动
  5. 有效解决OneNote同步问题
  6. linux 出现 -bash-4.2# 问题的解决方法
  7. java实现redis客户端_Java实现Redis客户端
  8. 广度优先搜索 解决九宫格问题
  9. windows下软件定时自动重启
  10. 油猴(Tampermonkey)安装教程
  11. 资源共享的两阶段交叉效率DEA模型及matlab应用:地区科技投入产出效率案例分析,文后有网盘链接
  12. jQuery01(达)
  13. vue中使用file-saver导出文件
  14. 37种传感器(十)之手指心跳检测模块+Stduino NanoUNO
  15. WIN10 LTSC 2019 安装新版Mircosoft Edge浏览器,解决无法安装问题
  16. 自从自己搭建了这套精选壁纸聊天背景的微信小程序,我的手机背景图再都没重复过
  17. uos系统不激活能用吗_uos如何激活
  18. 卸载wps后,安装完office 2010 图标异常,类型未识别问题
  19. java架构师主要负责什么_Java架构师主要学什么 Java架构师工资多少
  20. 程序员找工作,这样的公司千万别去!!

热门文章

  1. 40 张图带你搞懂 TCP 和 UDP
  2. 【MySQL】面试官:如何添加新数据库到MySQL主从复制环境?
  3. 面试官让我讲讲Unicode,我讲了3秒说没了,面试官说你可真菜
  4. 为什么大型互联网都爱用kafka?
  5. html酒鬼酒网站制作,酒鬼酒
  6. 基数排序算法LSD实现
  7. 排序算法---插入排序(java版)
  8. lua搭建ui_构建类魔兽UI插件的lua安全沙箱
  9. Clipper: 开源的基于图论框架的鲁棒点云数据关联方法(ICRA2021)
  10. 重磅!单目深度估计方法:算法梳理与代码实现