Java Apache POI 换行符在写入 XWPFTable 单元格时被忽略

2022-09-04 23:24:56

希望有人可能对此有一些经验。我正在使用Apache POI 3.8b4以Word 2007格式输出表格。当我执行类似于以下内容的操作时:

XWPFTableRow row = table.getRow(0);
String text = "A\nB\nC\nD";
row.getCell(i).setText(text);

我所有的换行符都被忽略了,在表格单元格的输出中看起来像

A B C D

有没有人知道如何让它正确显示为

A
B
C
D

编辑:解决方案如下:

XWPFParagraph para = row.getCell(i).getParagraphs().get(0);
for(String text : myStrings){
    XWPFRun run = para.createRun();
    run.setText(text.trim());
    run.addBreak();
}

答案 1

试试这个方式:

XWPFParagraph paragraph = document.createParagraph();
XWPFRun run=paragraph.createRun();
run.setText("A");
run.addBreak();
run.setText("B");
run.addBreak();
run.setText("C");
document.write(OutPutFilePath);

答案 2

试试这个:

String text = ".. ... some text with line breaks... ...";
String[] textLines = text.split(System.lineSeparator());
for(String s : textLines) {
  run.setText(s);
  run.addBreak(BreakType.TEXT_WRAPPING);
}

推荐