使用 Apache POI 的 Word 中 Table 内的行间距

Line Spacing Inside the Table in Word Using Apache POI

https://support.content.office.net/en-us/media/fbe67397-658c-4b04-b295-b0d6759e1aaa.jpg

大家好我需要在[=24]里面加上行间距(间距大约6pt)效果 =]。你可以看到上面的图像有一个段落间距,我需要那个效果。我使用的是 5.0.0 版本。并检查了很多网站。没什么用。如果有人帮助我那会很棒。 提前谢谢:)

设置段落间距apache poi提供XWPFParagraph.setSpacingBefore and XWPFParagraph.setSpacingAfterint 的测量单位是二十分之一点。所以 8*208 pt.

在 table 中需要获取 XWPFTableCell 的第一段来设置间距:

...
XWPFTableRow tableRow = ...
...
XWPFTableCell cell = tableRow.getCell(1);
if (cell.getParagraphs().size() > 0) cell.getParagraphs().get(0).setSpacingBefore(8*20);
...

但是如果要求是单元格垂直对齐,那么应该使用XWPFTableCell.setVerticalAlignment。但这只有在最后一段之后没有间距将段落向上推的情况下才能正确呈现。

所以

...
XWPFTableRow tableRow = ...
...
XWPFTableCell cell = tableRow.getCell(1);
cell.setVerticalAlignment(XWPFTableCell.XWPFVertAlign.CENTER);
if (cell.getParagraphs().size() > 0) cell.getParagraphs().get(cell.getParagraphs().size()-1).setSpacingAfter(0);
...