【问题标题】:Line Spacing Inside the Table in Word Using Apache POI使用 Apache POI 在 Word 中的表格内行间距
【发布时间】:2021-05-19 02:57:18
【问题描述】:

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

大家好,我需要在行距之前添加(间距约为6pt)效果在表格内。你可以看到上图有一个段落间距我需要那种效果。我正在使用 5.0.0 版本。并检查了许多网站。没什么用。如果有人帮助我,那就太好了。 谢谢提前:)

【问题讨论】:

  • “这使得表格内的内容居中对齐。”:不,它没有。请使用XWPFTableCell.setVerticalAlignment 这样做。
  • 它对齐单元格的顶部中心。我想把它放在牢房的中间。这就是为什么我需要那个行距

标签: ms-word apache-poi alignment vertical-alignment line-spacing


【解决方案1】:

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

在表格中,需要先获取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);
...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-28
    • 2021-05-18
    • 1970-01-01
    相关资源
    最近更新 更多