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/article/details/100237170