2016-02-24 2 views
0

У меня возникла проблема с созданием новых строк в ячейке. Когда я создаю файл, новые строки не отображаются корректно. Надеюсь, кто-то может помочь мне решить эту проблему. n не работает на excel-cell

cell.setCellValue(text); 
if(text.indexOf(System.getProperty("line.separator")) != -1) 
{ 
    int countRows = text.split(System.getProperty("line.separator")).length; 
    style.setWrapText(true); 
    cell.setCellStyle(style); 
    row.setHeightInPoints((countRows * sheet.getDefaultRowHeightInPoints())); 
    sheet.autoSizeColumn((short) countRows); 
} 

Это мой Excel-файл

enter image description here

Когда я делаю новый Excel-файл, все ячейки выглядят как ячейки A1. Нет новой линии. Когда я нажимаю на ячейку, A1 показывает описание по ячейке содержимого с новыми строками.

Я сделал двойной щелчок в ячейке A2, и ячейка отображает содержимое в правильном направлении.

Новый тег линии работает. Моя проблема заключается в том, что новая строка не отображается в ячейке в файле excel. Но это показано в описании ячейки. Есть ли способ показать все ячейки, такие как ячейка A2, без двойного щелчка?

Благодаря

+0

Newline последовательность символов на OS/программ для Windows является '\ г \ n'. –

+0

Вы используете apache-poi? –

+0

Да, я использую apache-poi. И \ r \ n тоже не работает. Может быть, у моего excel есть неправильные настройки, и именно поэтому это неправильно? – user2960190

ответ

1

Это работает для меня,

Workbook wb = new HSSFWorkbook(); 
    FileOutputStream fileOut = new FileOutputStream("workbook.xls"); 
    CreationHelper createHelper = wb.getCreationHelper(); 
    Sheet sheet = wb.createSheet("new sheet"); 
    Row row = sheet.createRow((short) 0); 
    row.setHeight((short) (2*sheet.getDefaultRowHeight())); 
    CellStyle cs = wb.createCellStyle(); 
    cs.setWrapText(true); 
    Cell cell = row.createCell(0); 
    cell.setCellStyle(cs); 
    cell.setCellValue(
    createHelper.createRichTextString("This is \n a string")); 
    wb.write(fileOut); 
    fileOut.close();