使用Apache Poi格式化表XWPFTable

时间:2011-03-18 09:34:39

标签: apache-poi docx

如何在使用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");  

我希望将表格居中并增加单元格大小。

2 个答案:

答案 0 :(得分:0)

目前,我不相信XWPFTable *类有直接的设置器。相反,您需要从Table,Row或Cell中获取适当的CT *对象,并直接设置属性。

.docx文件只是xml文件的zip文件。所以,我建议你做的是创建两个简单的word文档。一个有一个简单的表,另一个有该表,但应用了格式。接下来,解压缩两者,并对它们进行差异化以查看设置了哪些参数以应用所需的格式。

最后,获取适当的CT对象并进行适当的调用。例如,如果表格单元格上设置了 foo =“bar”,您可以:      XWPFTableCell cell = xwpfTable.getRow(0).getCell(0);      CTTc rawCell = cell.getCTTc();      rawCell.setFoo( “条”);

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

答案 1 :(得分:0)

您可以使用以下方法将桌子放到中间: table.setTableAlignment(TableRowAlign.CENTER);