簡體   English   中英

設置 Apache POI XWPFTable 表的外邊框?

[英]Set Outer Border of Apache POI XWPFTable table?

我需要設置 Apache POI XWPFTable 表的外邊框。 我知道下面的命令設置 insade 邊框,但沒有找到設置外邊框的方法。

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

也許這不是您真正想要的,但是您可以使用此方法將邊框樣式從一張表復制到另一張表:

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

要從表格中刪除所有邊框:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM