2014-12-24 2 views
3

Я создал XWPFTable в слове, используя Apache POI. Теперь таблица подходит с текстом в столбце. Теперь я хочу отформатировать текст в таблице вместе с размером , шрифт и т. д. Как я могу это сделать? Что я вижу, что каждый трюк связан с опцией run.Но я хочу, чтобы в TableRow.See, что я сделал до сих пор.Как отформатировать текст в XWPFTable в Apache POI

 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, как я могу добиться того, что ??

ответ

11

Добавить пункт в ячейку.

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); 
+0

Что означает пунктRefTitle? – fall

+0

@fall Изменили ответ. paragraphRefTitle = абзац – makkasi

3

Я нашел простое решение.

XWPFTable table = document.createTable(); 
XWPFTableRow row = table.insertNewTableRow(0); 
XWPFRun run = row.addNewTableCell().addParagraph().createRun(); 
run.setBold(true);run.setText("Your Text"); 

Вы можете добавить любые другие функции текстового формата для запуска объекта.

0

Большое спасибо, и код ниже также работал для меня. В моем случае я заменил МЕСТОПОЛОЖИТЕЛЯ другим текстом.

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); 

    }     
} 
Смежные вопросы