目录
问题描述:需要通过程序动态的给word文档中的表格添加内容
POI版本:3-4适用
解决方法:
POI提供了四种方法添加行:
- 调用createRow() 方法创建行,无样式
- 调用addRow(XWPFTableRow row) 方法创建,有样式
- 调用addNewRowBetween()方法,不生效,官方文档显示已弃用
- 调用insertNewTableRow() 方法创建行,无样式,并且还需要调用addNewCol() 来添加一列数据,列数必须统一,否则生成的Word无法打开,不推荐。
下面来详细说说前两种方法:
第一种方式,createRow()创建无样式行。如果想添加样式,可以通过手动设置表边框实现
注意:这种方法存在一定局限性,当word文档中存在多个表,会同时设置其他表的边框。
代码如下:
// 给表添加边框
CTTblBorders borders = table.getCTTbl().getTblPr().addNewTblBorders();
CTBorder hBorder = borders.addNewInsideH();
hBorder.setVal(STBorder.Enum.forString("single"));
hBorder.setSz(new BigInteger("1"));
hBorder.setColor("000000");
CTBorder vBorder = borders.addNewInsideV();
vBorder