【问题标题】:Format table XWPFTable using Apache Poi使用 Apache Poi 格式化表 XWPFTable
【发布时间】:2022-02-01 07:07:10
【问题描述】:

如何在使用 Apache POI 创建 docx 文件时格式化表格。我想设置单元格的大小、文本的字体、颜色等。

我找到了这个例子,但是单元格大小是根据文本大小设置的。

             XWPFDocument document = new XWPFDocument();  

             // New 2x2 table  

             XWPFTable tableOne = document.createTable();  

             XWPFTableRow tableOneRowOne = tableOne.getRow(0);      
             tableOneRowOne.getCell(0).setText("Hello");  
             tableOneRowOne.addNewTableCell().setText("World");  
             XWPFTableRow tableOneRowTwo = tableOne.createRow();  
             tableOneRowTwo.getCell(0).setText("This is");  
             tableOneRowTwo.getCell(1).setText("a table");  

我想使表格居中并增加单元格大小。

【问题讨论】:

    标签: apache-poi docx


    【解决方案1】:

    目前,我不相信 XWPFTable* 类对此有直接的设置器。相反,您需要从表、行或单元格中获取适当的 CT* 对象,然后直接设置属性。

    .docx 文件只是 xml 文件的 zip 文件。所以,我建议你做的是创建两个简单的 word 文档。一个有一个简单的表格,另一个有那个表格,但应用了格式。接下来,将两者解压缩,然后比较它们以查看设置了哪些参数以应用您想要的格式。

    最后,获取适当的 CT 对象并进行适当的调用。例如,如果表格单元格上有 foo="bar" 设置,你会这样做: XWPFTableCell 单元格 = xwpfTable.getRow(0).getCell(0); CTTc rawCell = cell.getCTTc(); rawCell.setFoo("bar");

    如果您确实找到了合适的技巧,请考虑发送一个补丁以在 XWPFTable 类上添加包装器。只需在 POI bugzilla (https://issues.apache.org/bugzilla/) 上打开一个错误并上传补丁。

    【讨论】:

      【解决方案2】:

      您可以使用以下方法将表格置于中心: table.setTableAlignment(TableRowAlign.CENTER);

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-08-09
        • 2014-07-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-03
        • 1970-01-01
        相关资源
        最近更新 更多