Apache POI:不换行的新行

问题描述 投票:0回答:1

我想在一个单元格中写入多行文本,但不换行。

期望:

我从简单开始:

Row row = sheet.createRow(0);
Cell cell = row.createCell(0);
cell.setCellValue("First text line. \r\nNew line.");

它不起作用,但我发现(1234)我需要

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。

java apache-poi
1个回答
0
投票

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 文件格式。

© www.soinside.com 2019 - 2024. All rights reserved.