我想在一个单元格中写入多行文本,但不换行。
期望:
我从简单开始:
Row row = sheet.createRow(0);
Cell cell = row.createCell(0);
cell.setCellValue("First text line. \r\nNew line.");
setWrapText(true)
来显示新行并设置行高:
Row row = sheet.createRow(0);
Cell cell = row.createCell(0);
cell.setCellValue("First text line. \r\nNew line.");
CellStyle cellStyle = workbook.createCellStyle();
cellStyle.setWrapText(true);
cell.setCellStyle(cellStyle);
row.setHeightInPoints(2 * sheet.getDefaultRowHeightInPoints());
它可以工作(可见新行,两行的高度),但文本被换行。
如果我
setWrapText(false)
,我会回到开始的地方(新行不可见):
如何显示新行,但不换行?
Apache POI 5.2.4,Libre Office。
Apache POI 创建 Office Open XML 文件格式,此文件格式无法存储您的第一个屏幕截图显示的内容 - 一个单元格具有多个文本行,其中文本仍然溢出了右单元格边框。
Libreoffice 使用开放文档文件格式,能够存储您的第一个屏幕截图显示的内容。
使用 Libreofice calc 创建第一个屏幕截图所示的内容。然后将其另存为
*.xlsx
(Libreofice 将此称为 Excel 2007-365-Format)。现在关闭并重新打开该文件。你会看到溢出,右单元格边框消失了。
现在再次使用 Libreofice calc 创建第一个屏幕截图所示的内容。然后将其另存为
*.ods
(ODF 格式)。现在关闭并重新打开该文件。您将得到与保存时完全相同的内容。
所以问题在于 Office Open XML 文件格式
*.xlsx
与 Open Document 文件格式 *.ods
。 Apaxhe POI 仅创建 Office Open XML 文件格式。