设置Apache POI XWPFTable表的外部边界



我需要设置Apache POI XWPFTable表的外部边界。我知道下面的命令设置内部边界,但没有找到设置外部边界的方法。

table.setInsideHBorder( XWPFBorderType.SINGLE, 4, 0, "FF0000");

有什么帮助吗?提前感谢!

我找到了:

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);

要从表中删除所有边框:

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);    

也许这不是你真正想要的,但它是你将边框样式从一个表复制到另一个表的方法——你可以使用这种方法:

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.TTbl属性并对其进行配置:

CTTbl cttbl = table.getCTTbl();

相关内容

  • 没有找到相关文章

最新更新