2011-09-19 297 views
12

Esperando que alguien tenga algo de experiencia con esto. Estoy usando Apache POI 3.8b4 para generar una tabla en formato Word 2007. Cuando hago algo similar a la siguiente:Java Apache Los caracteres POI de nueva línea se ignoran al escribir en la celda XWPFTable

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

todos mis saltos de línea son ignorados en la salida de la celda de la tabla parece

A B C D 

¿Alguien tiene alguna idea de cómo llegar a adecuadamente pantalla como

A 
B 
C 
D 

Editar: la solución fue el siguiente:

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

¿Ha intentado/r/n? O System.properties ("line.separator")? –

+0

A menos que malinterprete esto, está agregando celdas en una fila, por lo que estarán en 4 celdas adyacentes. Por lo que intenta hacer, necesita crear una nueva fila para cada personaje. – CoolBeans

+0

Si hace lo mismo en Word, ¿qué XML genera para la celda? ¿Simplemente hace nuevas líneas literales, o hace algo elegante como múltiples párrafos en la celda? – Gagravarr

Respuesta

1

¿Ha intentado agregar varios párrafos?

Add Paragraph

+0

En realidad quería un descanso suave, así que necesitaba obtener el párrafo existente, agregar una ejecución y luego agregar un descanso en la ejecución, pero esto básicamente me puso en el camino correcto. – ratherOCD

0

Trate de esta manera:

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