POI读取word内容的疑问
两片内容相同的word,poi分割成XWPFRun集合的时候,发现相同的段落内容有空行。
word1打印的段落内容
word2打印的段落内容
代码如下
/**
替换段落中的内容
@param paragraphList 段落集合
@param param 要替换的内容map集合
@param doc CustomXWPFDocument对象
*/
public static void processParagraphs(List paragraphList,Map param,CustomXWPFDocument doc){
if(paragraphList != null && paragraphList.size() > 0){
for(XWPFParagraph paragraph:paragraphList){
List runs = paragraph.getRuns(); //段落集合
for (XWPFRun run : runs) {
String text = run.getText(0); //段落内容
System.out.println("text---->"+text);
if(text != null){
boolean isSetText = false;
for (Entry 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());
break;
}
}
}
if(isSetText){
run.setText(text,0);
}
}
}
}
}
}
造成两次段落内容分割不同的情况我大致知道,word2每一行纯手打,word1复制过来的。但是有时候纯手打也会出现一个替换字符分行,或者多个替换字符在一行的情况。例如${AAA}${BBB} 被解析成了一个段落。
求大神,这个问题困惑了很久。
相关阅读:
DB中关联查询和分别单独查询的优先级?
有用过dropzonejs拖拽上传文件的吗?php如何拿到它的值。
shell输出中不同颜色的含义?
SMTP邮件发送问题
android 获取 短信会话ID 失败
android关于Intent的一个问题
IE10报如此错误如何解决?
第三方组件引用类库与项目引用类库不一致
有使用过Java关键字strictfp的经验么?
Spring框架下面各个部分是怎么样一种关系,他们都有那些职责?
HTML5页面生成器
IOS手势监听只能监听到第一次。
如何解决阻止正在执行的js?
多部分水纹波动效果的实现
有没有山东烟台可以做网站的小伙伴,求一起做个东西。
Xml节点内容正则表达式替换
iOS10相机权限设置了之后用户点击不允许crash
Mac OS X 下PHP无法显示错误信息
redis延迟问题
Linux新安装python后出现的按键映射错误问题(SecureCRT环境)