在XSSFRichTextString中忽略新行

:编辑开始:

如果有人偶然发现这个问题,那么这里有一个小问题。

获取newLines后,我想设置行高以匹配内容。 为此,我只需将行高设置为cellValue中newLines的数量。 但是,当使用poi创建电子表格时,如果在cellValue之前或之后应用cellStyle似乎很重要。 在我的情况下,它只有在我添加cellValue 之前应用cellStyle 有效。

哦,记住rowHeight被定义为角色的1/256(!?!?!)所以将rowHeight设置为

(short)(numberOfNewLines*256) 

:编辑结束:

我有这段代码生成Excel电子表格。 使用一些单元格的内容创建

 cell.setCellValue(new XSSFRichTextString(header)); cell.setCellStyle(cs); 

但是,如果我设置

 header = "Estimated\nDuration"; 

然后新行不会在生成的电子表格中呈现。 它只是“EstimatedDuration”。

我正在使用Apache POI v3.9。

有什么建议?

让我们从如何使用Excel在Excel电子表格中添加换行开始。 根据这篇文章 ,编辑单元格内容,将光标放在所需的换行位置,然后按Alt + Enter 。 这样做的结果是在字符串中引入换行符在单元格中打开“换行文本”。

您已经在字符串中添加了换行符,但是您需要使用setWrapText方法添加到代码中以修改CellStyle以打开包装文本。

 String header = "Estimated\nDuration"; cell.setCellValue(new XSSFRichTextString(header)); // Add this line to turn on wrapped text. cs.setWrapText(true); cell.setCellStyle(cs); 

这似乎在.xls和.xlsx文件上成功测试。

如果单元格样式的“换行文本”属性设置为true ,则Excel似乎只会换行文本,换行是否存在。