JAVA POI WORD XWPFDocument 常用操作-随时更新

// 在文档末尾插入表格 rows行数   cols列数
XWPFTable createTable = document.createTable(rows, cols);
// 设置宽度
CTTblPr tblPr = createTable.getCTTbl().getTblPr();
tblPr.getTblW().setType(STTblWidth.DXA);// 固定值
// 1厘米是567
// 15厘米是        8505
tblPr.getTblW().setW(BigInteger.valueOf(8505l));

// 布局 单元格一样宽
CTTblLayoutType layoutType = createTable.getCTTbl().getTblPr().addNewTblLayout();
layoutType.setType(STTblLayoutType.FIXED);
				
// 取表格行
List tableRows = createTable.getRows();

// for(XWPFTableRow xwpfTableRow : tableRows)

// 取行单元格
List cells = xwpfTableRow.getTableCells();

// for(XWPFTableCell cell : cells )

cell.setText("设置文本");

// 设置样式 - 水平居中
CTTc cttc = cell.getCTTc();
CTTcPr ctPr = cttc.addNewTcPr();
ctPr.addNewVAlign().setVal(STVerticalJc.CENTER);
cttc.getPList().get(0).addNewPPr().addNewJc().setVal(STJc.CENTER);

// 设置宽度
// CTTblWidth cellw = ctPr.addNewTcW();
// cellw.setType(STTblWidth.DXA);
// cellw.setW(BigInteger.valueOf(700));

// 文本颜色
// cell.setColor(color);

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓下面 是废话↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

新建段落 

XWPFParagraph newParagraph = document.createParagraph();
newParagraph.createRun().setText("设置文本");

新建表格

XWPFTable createTable = document.createTable(rows, cols);

rows 行数

cols 列数

表格宽度

有这几个类型

//STTblWidth
static final Enum NIL = Enum.forString("nil");     // 不知道是啥
static final Enum PCT = Enum.forString("pct"); // 百分比
static final Enum DXA = Enum.forString("dxa");   // 固定值 
static final Enum AUTO = Enum.forString("auto");// 自动  默认是这个好像

但是我的需求只要 15厘米
1厘米是     567
15厘米是        8505
环境不同可能不一样吧?

CTTblPr tblPr = createTable.getCTTbl().getTblPr();
tblPr.getTblW().setType(STTblWidth.DXA);    // 固定值
tblPr.getTblW().setW(BigInteger.valueOf(8505l));// 设置宽度

设置完 会发现每个单元格的宽度不一样!跟布局有关

CTTblLayoutType layoutType = createTable.getCTTbl().getTblPr().addNewTblLayout();
layoutType.setType(STTblLayoutType.FIXED);

 

你可能感兴趣的:(真正的有丫丫-POI,java,poi)