我使用Apache POI在单词中创建了XWPFTable
。现在,表格正确地显示在列中的文本。现在我想格式化表格中的文字以及大小,字体等。我该怎么做?我所看到的是每个技巧都与运行选项相关联。但我想要的是TableRow
。看看到目前为止我做了什么:
XWPFTable tableTwo = document.createTable();
XWPFTableRow tableTwoRowOne = tableTwo.getRow(0);
tableTwo.getCTTbl().getTblPr().unsetTblBorders();
tableTwoRowOne.getCell(0).setText("No Match – Location: ");
tableTwoRowOne.addNewTableCell().setText("Prospect has expressed unwillingness to relocate or is based out of area where commute is not feasible");
XWPFTableRow tableTwoRowTwo = tableTwo.createRow();
tableTwoRowTwo.getCell(0).setText("No Match – Scalability: ");
tableTwoRowTwo.getCell(1).setText("Prospect’s recent organizational size, structure, and complexity is not scalable to client’s environment");
我想格式化表tableTwo
和tableTwoRowTwo
的文字。我怎样才能做到这一点?
答案 0 :(得分:17)
在单元格中添加段落。
XWPFTableRow rowOne = table.getRow(0);
XWPFParagraph paragraph = rowOne.getCell(0).addParagraph();
setRun(paragraph.createRun() , "Calibre LIght" , 10, "2b5079" , "Some string" , false, false);
private static void setRun (XWPFRun run , String fontFamily , int fontSize , String colorRGB , String text , boolean bold , boolean addBreak) {
run.setFontFamily(fontFamily);
run.setFontSize(fontSize);
run.setColor(colorRGB);
run.setText(text);
run.setBold(bold);
if (addBreak) run.addBreak();
}
通常这会在单元格中添加一个段落,但单元格已经有一个。因此,首先删除单元格中的段落,然后添加新段落,否则结果将在新段落之前为空行。
rowOne.getCell(0).removeParagraph(0);
答案 1 :(得分:3)
我找到了一个简单的解决方案。
XWPFTable table = document.createTable();
XWPFTableRow row = table.insertNewTableRow(0);
XWPFRun run = row.addNewTableCell().addParagraph().createRun();
run.setBold(true);run.setText("Your Text");
您可以添加任何其他文本格式函数来运行对象。
答案 2 :(得分:0)
非常感谢,以下代码也适用于我。在我的情况下,我用另一个文本替换了PLACE HOLDER。
for (XWPFTableCell cell : cells) {
String cellTextString = cell.getText();
if (cellTextString != null && cellTextString.contains(placeholder)) {
cellTextString = cellTextString.replace(placeholder,waterMarkText);
cell.removeParagraph(0);
XWPFParagraph addParagraph = cell.addParagraph();
XWPFRun run = addParagraph.createRun();
run.setFontFamily("Calibri");
run.setFontSize(10);
run.setText(cellTextString);
}
}