poi设置word表格边框

这篇文章是解决当word表格套表格的时候,里面表格默认为虚线的问题,特此记录一下

// 假设 document 是 XWPFDocument 对象,outerTable 是外层表格,innerTable 是其内部嵌套的表格

// 1. 设置外层表格边框

CTTblBorders outerBorders = outerTable.getCTTbl().getTblPr().addNewTblBorders();

setBordersToSolid(outerBorders); // 调用统一设置方法

// 2. 设置嵌套表格边框

CTTblBorders innerBorders = innerTable.getCTTbl().getTblPr().addNewTblBorders();

setBordersToSolid(innerBorders); // 同上

// 统一设置边框为实线的方法

private void setBordersToSolid(CTTblBorders borders) {

String lineType = "single"; // 实线类型

String size = "4"; // 边框粗细(如 3 磅需设置为 4,POI 单位与磅值映射需实测)

String color = "000000"; // 黑色

复制代码
// 分别设置内部横线、内部竖线、左、右、上、下边框
CTBorder[] borderTypes = {
    borders.addNewInsideH(), borders.addNewInsideV(),
    borders.addNewLeft(), borders.addNewRight(),
    borders.addNewTop(), borders.addNewBottom()
};

for (CTBorder border : borderTypes) {
    border.setVal(STBorder.Enum.forString(lineType));
    border.setSz(new BigInteger(size));
    border.setColor(color);
}

}