我需要设置Apache POI XWPFTable表的外边框。我知道下面的命令设置了insade border,但是找不到设置外边框的方法。
table.setInsideHBorder( XWPFBorderType.SINGLE, 4, 0, "FF0000");
有任何帮助吗?提前谢谢!
答案 0 :(得分:10)
我找到了:
CTTblPr tblpro = table.getCTTbl().getTblPr();
CTTblBorders borders = tblpro.addNewTblBorders();
borders.addNewBottom().setVal(STBorder.SINGLE);
borders.addNewLeft().setVal(STBorder.SINGLE);
borders.addNewRight().setVal(STBorder.SINGLE);
borders.addNewTop().setVal(STBorder.SINGLE);
//also inner borders
borders.addNewInsideH().setVal(STBorder.SINGLE);
borders.addNewInsideV().setVal(STBorder.SINGLE);
答案 1 :(得分:1)
也许这不是你想要的,但是你可以使用这种方法将边框样式从一个表复制到另一个表:
private void copyTableBorderStyle(XWPFTable table, XWPFTable newTable) {
newTable.setInsideHBorder(table.getInsideHBorderType(), table.getInsideHBorderSize(), table.getInsideHBorderSpace(), table.getInsideHBorderColor());
newTable.setInsideVBorder(table.getInsideVBorderType(), table.getInsideVBorderSize(), table.getInsideVBorderSpace(), table.getInsideVBorderColor());
newTable.getCTTbl().setTblPr(table.getCTTbl().getTblPr());
newTable.getCTTbl().setTblGrid(table.getCTTbl().getTblGrid());
}
但是对于你的问题,如果你要改变外边界,你需要获得org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTbl属性并配置它:
CTTbl cttbl = table.getCTTbl();
答案 2 :(得分:0)
要删除表格中的所有边框,请执行以下操作:
tab.getCTTbl().getTblPr().getTblBorders().getLeft().setVal(STBorder.NONE);
tab.getCTTbl().getTblPr().getTblBorders().getRight().setVal(STBorder.NONE);
tab.getCTTbl().getTblPr().getTblBorders().getTop().setVal(STBorder.NONE);
tab.getCTTbl().getTblPr().getTblBorders().getBottom().setVal(STBorder.NONE);