关于poi处理word换行问题

目录

  • 1 引言
  • 2 代码中的换行失效
  • 3 解决1
  • 4 解决2

1 引言

在解析还原word文档的过程中,不免用到换行,那么需要怎么操作呢

2 代码中的换行失效

poi中的结构

     * 处理段落
     * word中:
     * 第一行: 你好,今天天气很好
     * 第二行: 天气不错,出去溜溜
     * 第三行: 注意养发
     * 每一行对应一个XWPFParagraph
     * 每一行的XWPFParagraph对应多个XWPFRun
     * 第一行: 你好[run0],今天天气很好[run1]
     * 第二行: 天气不错[run0],出去溜溜[run1]
     * 第三行: 注意养发[run0]
     * <p>
     * run当中又包括文本[pos 0,pos 1,pos 2,...]、字体、脚注等
     * run才是操作文本的基本单元

run直接set \n 是无效的 addbreak 或者 addCarriageReturn是针对一个run进行换行,那么一个run中有好几个文本的时候,需要如何换行呢

3 解决1

以下都可以解决doc的换行问题 但是无法解决docx的换行

(char)11

"\r"

解决docx换行(当然也可以解决doc)

run.addBreak();
run.addCarriageReturn();

4 解决2

此方法可以在根本上解决换行问题

 XWPFRun run = contrastParagraph.insertNewRun(0);
 run.setText(p.toString());
 run.addBreak(BreakClear.ALL);

在指定位置插入一个run。
run添加换行

你可能感兴趣的:(java)