如何在Java中使用Apache POI在Word中设置表格尺寸和间距

问题描述

我正在尝试使用表格生成Word文档。页面只有一页,有5行2列。我正在使用信函页面,尺寸为8.5“ x 11”。我给程序留了余地。

这是我的代码

    XWPFDocument xWPFDocument = new XWPFDocument();

    CTSectPr cTSectPr = xWPFDocument.getDocument().getBody().addNewSectPr();
    CTPageMar cTPageMar = cTSectPr.addNewpgmar();
    cTPageMar.setLeft(BigInteger.valueOf(475));
    cTPageMar.setTop(BigInteger.valueOf(720));
    cTPageMar.setRight(BigInteger.valueOf(446));
    cTPageMar.setBottom(BigInteger.valueOf(605));

    XWPFTable xWPFTable = xWPFDocument.createTable(5,2);
    xWPFTable.getCTTbl().getTblPr().unsetTblBorders();

    xWPFTable.setTableAlignment(TableRowAlign.CENTER);
    xWPFTable.setWidth("100%");

我正在使用以下代码设置单元格宽度和行高。但是我没有注意到任何变化。

    XWPFTableRow xWPFTableRow;

    for (int i = 0; i < 5; i++) {
        xWPFTableRow = xWPFTable.getRow(i);

        xWPFTableRow.setHeight(2880);
        xWPFTableRow.getCell(i).getCTTc().addNewTcPr().addNewTcW().setW(BigInteger.valueOf(6033));
    }

我要寻找的是如何设置Horizontal and Vertical Spacing,还有没有办法使用Apache POI设置Horizontal and Vertical Pitch

解决方法

当前的apache poi 4.1.2提供了一种方法setWidth(java.lang.String widthValue),其中widthValue可以是String,在XWPFTable和{{1} }。

到目前为止,尚不直接支持设置像元间距。因此必须使用基础XWPFTableCell类。

完整示例:

ooxml-schemas

enter image description here