Backgroud
网上没查到相关能用的经验,于是自己去扒的poi官网查到的,这里做个记录,同时分享给大家,后面有时间会再写篇博客介绍poi替换word模板,涉及文本替换,插入表格,插入图片等。
先贴张效果图
设置表格边框样式
/**
* 设置表格边框样式
*/
private static void formatTableBolder(XWPFTable table) {
// 双实线边框
String bolderType = "double";
CTTblBorders borders = table.getCTTbl().getTblPr().addNewTblBorders();
// 设置内边框样式,默认单实线
// CTBorder hBorder = borders.addNewInsideH();
// hBorder.setVal(STBorder.Enum.forString(bolderType));
// hBorder.setSz(new BigInteger("1")); // 线条大小
// hBorder.setColor("000000"); // 设置颜色
//
// CTBorder vBorder = borders.addNewInsideV();
// vBorder.setVal(STBorder.Enum.forString(bolderType));
// vBorder.setSz(new BigInteger("1"));
// vBorder.setColor("000000");
// 设置上下左右外边框
CTBorder lBorder = borders.addNewLeft();
lBorder.setVal(STBorder.Enum.forString(bolderType));
lBorder.setSz(new BigInteger("1"));
lBorder.setColor("000000");
CTBorder rBorder = borders.addNewRight();
rBorder.setVal(STBorder.Enum.forString(bolderType));
rBorder.setSz(new BigInteger("1"));
rBorder.setColor("000000");
CTBorder tBorder = borders.addNewTop();
tBorder.setVal(STBorder.Enum.forString(bolderType));
tBorder.setSz(new BigInteger("1"));
tBorder.setColor("000000");
CTBorder bBorder = borders.addNewBottom();
bBorder.setVal(STBorder.Enum.forString(bolderType));
bBorder.setSz(new BigInteger("1"));
bBorder.setColor("000000");
}
设置表格居中
这里是表格整体居中,不是表格内容居中。
XWPFTable table = doc.createTable(2,5);
// 设置表格居中
table.setTableAlignment(TableRowAlign.CENTER);
设置单元格内容居中
这里是表格内容居中。
XWPFTable table = doc.createTable(2,5);
// 设置表格居中
table.setTableAlignment(TableRowAlign.CENTER);
//设置表格内容居中
CTJc jc = table.getCTTbl().getTblPr().getJc();
if(jc == null){
jc = table.getCTTbl().getTblPr().addNewJc();
}
jc.setVal(STJc.CENTER);
table.getCTTbl().getTblPr().setJc(jc);