找了很多的资料但是就是没有用poi操作word表格单元格边界问题,很是苦恼,不多说了几行代码,希望有帮助。
XWPFTableCell cell......
cell.getCTTc().getTcPr().getTcBorder.getTop().setVal(STBorder.SINGLE) //设置虚线,实线之类的
cell.getCTTc().getTcPr().getTcBorder.getTop().setSz(BigInteger num) //size
cell.getCTTc().getTcPr().getTcBorder.getTop().setColor(String s) //16进制,别加 # 6位RGB 非8位ARGB
下面是google来的(参考)
private void buildCellBorder(Border border, XWPFTableCell tableCell,int type) {
CTTcPr cellPropertie = tableCell.getCTTc().getTcPr();
if(cellPropertie==null){
cellPropertie=tableCell.getCTTc().addNewTcPr();
}
CTTcBorders borders=cellPropertie.getTcBorders();
if(borders==null){
borders=cellPropertie.addNewTcBorders();;
}
BorderStyle borderStyle=border.getStyle();
CTBorder ctborder=null;
if(type==1){
ctborder=borders.addNewLeft();
}else if(type==2){
ctborder=borders.addNewRight();
}else if(type==3){
ctborder=borders.addNewTop();
}else if(type==4){
ctborder=borders.addNewBottom();
}
if(borderStyle.equals(BorderStyle.dashed)){
ctborder.setVal(STBorder.DASHED);
}else if(borderStyle.equals(BorderStyle.doublesolid)){
ctborder.setVal(STBorder.DOUBLE);
}else{
ctborder.setVal(STBorder.SINGLE);
}
int borderWidth=border.getWidth();
if(borderWidth>1){
ctborder.setSz(BigInteger.valueOf(DxaUtils.points2dxa(borderWidth)));
}
String color=border.getColor();
if(StringUtils.isNotBlank(color)){
ctborder.setColor(toHex(color.split(",")));
}
}