2011-09-19 91 views
12

希望有人可能对此有一些经验。我使用Apache POI 3.8b4以Word 2007格式输出表格。当我做类似如下的内容:写入XWPFTable单元时,会忽略Java Apache POI换行符字符

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

你试过/ R/N?或者System.properties(“line.separator”)? –

+0

除非我误解了这一点 - 您将在一行中添加单元格,因此它们将位于4个相邻的单元格中。对于您要做的事情,您需要为每个角色创建一个新行。 – CoolBeans

+0

如果你在Word中做同样的事情,它为单元格产生了什么样的XML?它只是做字面换行符,还是它会像单元格中的多个段落那样做一些特殊的事情? – Gagravarr

回答

1

您是否尝试添加多个段落?

Add Paragraph

+0

我其实需要一个休息时间,所以我需要获得现有的段落,添加一个跑步,然后在跑步中添加一个休息,但是这基本上让我走上了正确的道路。 – ratherOCD

0

试试这个方法:

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