在XSSFRichTextString中忽略新行

时间:2014-09-10 06:52:52

标签: java apache-poi

:编辑START:

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

让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。

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

让我们从如何使用Excel在Excel电子表格中添加换行开始。根据{{​​3}},编辑单元格内容,将光标放在所需的换行位置,然后执行 Alt + Enter 。这样做的效果是在字符串中引入换行符并且打开"换行文本"在牢房里。

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

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文件上成功测试。

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