POI在word里控制表格的样式

转自:https://blog.csdn.net/qq_36161345/article/details/100237170

poi 操作word里表格,如设置表格宽度、行高、表格样式等。

1.表格或单元格宽度:

默认TblW的type属性为STTblWidth.AUTO,即自动伸缩。所以要调整为指定类型:STTblWidth.DXA 1)表格宽:

CTTblPr tblPr = xtab2.getCTTbl().getTblPr();

tblPr.getTblW().setType(STTblWidth.DXA);

tblPr.getTblW().setW(new BigInteger("7000"));

单元格宽:

CTTcPr tcpr = cell.getCTTc().addNewTcPr();

CTTblWidth cellw = tcpr.addNewTcW();

cellw.setType(STTblWidth.DXA);

cellw.setW(BigInteger.valueOf(360*5));

2.表格风格

注:如果不设置风格,将采用默认的Normal风格

CTTblPr tblPr = xtab2.getCTTbl().getTblPr();

CTString styleStr = tblPr.addNewTblStyle();

styleStr.setVal("StyledTable");

3.表格行高:获取表格行的CTTrPr.增加CTHeight属性

List rows = xtab2.getRows();

for (XWPFTableRow row : rows) {

CTTrPr trPr = row.getCtRow().addNewTrPr();

CTHeight ht = trPr.addNewTrHeight();

ht.setVal(BigInteger.valueOf(360));

......

}

表格行内容垂直居中:

CTVerticalJc va = tcpr.addNewVAlign();

va.setVal(STVerticalJc.CENTER);

4.表格单元格颜色

例如下面的标题行与奇偶行颜色设置

CTShd ctshd = tcpr.addNewShd();

ctshd.setColor("auto");

ctshd.setVal(STShd.CLEAR);

if (rowCt == 0) {

// 标题行

ctshd.setFill("A7BFDE");

}

else if (rowCt % 2 == 0) {

// even row

ctshd.setFill("D3DFEE");

}

else {

// odd row

ctshd.setFill("EDF2F8");

}

5.获取某指定位置对象并生成新的光标位置

注:这个更新或插入操作比较有用,比如更新文档目录.

XmlCursor cursor = doc.getDocument().getBody().getPArray(0).newCursor();

XWPFParagraph cP = doc.insertNewParagraph(cursor);

6.插入图片:

XWPFParagraph parapictest = document.createParagraph();

XWPFRun runtest = parapictest.createRun();

runtest.setText("图片:");

XWPFRun pictest = document.createParagraph().createRun();

XWPFPicture picture = pictest.addPicture(new FileInputStream("D://563.jpg"), Document.PICTURE_T YPE_JPEG, "D://563.jpg", 1000*360*10,1000*360*10);
————————————————
版权声明:本文为CSDN博主「garbageNewbie」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36161345/java/article/details/100237170

评论列表

    回复

    提示:您的邮箱只作博主联系您使用,不会显示在评论区. *为必填项