You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Apache POI中实现Word文档内整个表格的居中对齐?

如何在Apache POI中实现Word文档内整个表格的居中对齐?

我特别懂你的困扰!网上搜出来的大多是教你怎么让表格单元格里的内容居中,但你要的是整个表格在页面里居中对齐对吧?别慌,这就给你说清楚具体怎么实现~

你已经走到获取CTTblPr这一步了,其实只差最后关键的一步——给表格添加水平对齐配置。在Apache POI的底层OXML结构里,表格的整体对齐是靠CTJc这个对象来控制的,具体操作如下:

完整代码示例

// 创建表格(你的原有代码,修正了语法细节)
XWPFTable table = doc.createTable(1, rowSize);
table.removeBorders();
table.setWidth("80.00%");

// 获取表格的核心属性对象,先检查是否已存在,不存在则新建
CTTbl cttbl = table.getCTTbl();
CTTblPr cTTblPr = cttbl.getTblPr() != null ? cttbl.getTblPr() : cttbl.addNewTblPr();

// 创建表格对齐配置并设置为居中
CTJc ctJc = CTJc.Factory.newInstance();
ctJc.setVal(STJc.CENTER); // 指定水平对齐方式为居中
cTTblPr.setJc(ctJc); // 将对齐配置绑定到表格属性上

关键说明

  • CTJc就是专门用来设置元素(这里是表格)水平对齐的对象,STJc.CENTER就是居中对齐的枚举值;
  • 先判断TblPr是否已存在是个好习惯,避免重复创建可能带来的潜在问题,当然直接用addNewTblPr()也能正常工作;
  • 设置完之后,你的80%宽度的表格就会自动在页面水平居中,而不是默认的左对齐啦。

备注:内容来源于stack exchange,提问作者Greg Br

火山引擎 最新活动