在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似乎只会换行文本,换行是否存在。