2011-09-19 28 views
12

Hy vọng ai đó có thể có một số kinh nghiệm về điều này. Tôi đang sử dụng Apache POI 3.8b4 để xuất một bảng trong định dạng Word 2007. Khi tôi làm điều gì đó tương tự như sau:Các ký tự dòng mới của Apache Apache POI bị bỏ qua khi ghi vào ô XWPFTable

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

tất cả các ngắt dòng của tôi được bỏ qua trong đầu ra trong tế bào bảng trông giống như

A B C D 

Có ai có bất kỳ ý tưởng làm thế nào để làm cho nó đúng cách hiển thị như

A 
B 
C 
D 

Edit: dung dịch được như sau:

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

Bạn đã cố gắng/r/n? Hoặc System.properties ("line.separator")? –

+0

Trừ khi tôi hiểu lầm điều này - bạn đang thêm các ô liên tiếp, vì vậy chúng sẽ nằm trong 4 ô liền kề. Đối với những gì bạn đang cố gắng làm bạn cần phải tạo một hàng mới cho mỗi nhân vật. – CoolBeans

+0

Nếu bạn làm điều tương tự trong Word, XML tạo ra nó cho tế bào là gì? Liệu nó chỉ làm những dòng chữ mới, hay nó làm một cái gì đó lạ mắt như nhiều đoạn văn trong tế bào? – Gagravarr

Trả lời

1

Bạn đã thử thêm nhiều đoạn văn chưa?

Add Paragraph

+0

Tôi thực sự muốn một break mềm, vì vậy tôi cần thiết để có được đoạn hiện có, thêm một chạy, và sau đó thêm một break trong chạy, nhưng điều này về cơ bản đã cho tôi trên con đường bên phải. – ratherOCD

0

Hãy thử cách này:

XWPFParagraph paragraph = document.createParagraph(); 
XWPFRun run=paragraph.createRun(); 
run.setText("A"); 
run.addBreak(); 
run.setText("B"); 
run.addBreak(); 
run.setText("C"); 
document.write(OutPutFilePath); 
Các vấn đề liên quan