poi对word的操作(总结)


★★★ 
POI在读写word docx文件时是通过xwpf模块来进行的,其核心是XWPFDocument。
    1、正文段落:一个文档包含多个段落Paragraph,一个段落包含多个Runs,一个Runs包含多个Run,Run是文档的最小单元。
    (Run:代表具有相同属性的一段文本,可以包含多个图片)
    2、正文表格:一个文档包含多个表格Table,一个表格包含多行TableRow,一行包含多列(单元格TableCell)
    ,每一格的内容相当于一个完整的文档。★注:表格的一格相当于一个完整的docx文档,只是没有页眉和页脚。里面可以有表格,
    使用xwpfTableCell.getTables()获取在poi中段落和表格是完全分开的,如果在两个段落中有一个表格,
    在poi中是没办法确定表格在段落中间的。
    3、页眉:一个文档可以有多个页眉,页眉里面可以包含段落和表格
    4、页脚:页脚和页眉基本类似,可以获取表示页数的角标
 
XWPFDocument代表一个docx文档,其可以用来读docx文档,也可以用来写docx文档。
XWPFParagraph代表一个段落,由多个XWPFRun组成
XWPFRun代表具有同样风格的一段文本
XWPFTable代表一个表格
XWPFTableRow代表表格的一行
XWPFTableCell代表表格的一个单元格

★Paragraph、Run和Table都继承自Range。
  
直接调用XWPFRun的setText()方法设置文本时,在底层会重新创建一个XWPFRun,把文本附加在当前文本后面,
所以我们不能直接设值,需要先删除当前run,然后再自己手动插入一个新的run。 

设置文本的大小、字体、是否加粗、颜色等

XWPFRun r1 = p1.createRun();// p1.createRun()将一个新运行追加到这一段
  Text text = (Text) wordValue.getList().get(index).get("text");
  System.out.println(text.getValue());
  r1.setText(text.getValue());
  r1.setBold(true);// ---"加黑加粗"
  r1.setFontSize(14);// ---字体大小
  r1.setTextPosition(20);// 间距

设置表格的位置、内容table、row、cell

table.addNewCol();给表格增加新的一列

table.createRow();创建一行

row.setHeight(int height);设置单元格的高度

cell.getText();返回单元格中文本内容

cell.setColor(String color);设置单元格颜色

cell.setText(String value);设置单元格的值

原文地址:https://www.cnblogs.com/dayuruozhi/p/6667826.html