这篇文章是解决当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);
}
}