我想在一个单元格中写入多行文本,但不包装它们.

期望值:

two lines - expectation

我从简单开始:

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

first

它不起作用,但我发现(1,2,3,4)我需要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());

second

它工作(可见新行,两行高),但文本被包装.

如果I setWrapText(false),我回到我开始的地方(新行不可见):

third

如何显示新行,但不包装文本?

_

推荐答案

Apache POI创建了Office Open XML文件格式,这种文件格式无法存储第一个屏幕截图显示的内容—一个单元格有多个文本行,但文本仍然溢出单元格的右侧边框.

Libreoffice使用Open Document文件格式,能够存储您的第一个屏幕截图显示的内容.

使用Libreoffice Calc创建您的第一个屏幕截图显示的内容.然后保存为*.xlsx(Libreoffice称此为Excel 2007—365—Format).现在关闭并重新打开文件.您将看到溢出的右侧单元格边界消失了.

现在再次创建您的第一个屏幕截图显示的内容使用Libreoffice Calc.然后保存为*.ods(ODF格式).现在关闭并重新打开文件.你会得到它完全一样的保存.

因此,问题在于Office Open XML文件格式*.xlsx与Open Document文件格式*.ods.而Apache POI只创建Office Open XML文件格式.

Java相关问答推荐

try 使用Java 9或更高版本对特殊对象图进行解析时出现NullPointerException

在JavaFX项目中注册组合框的控件FX验证器时,模块系统出错

在springboot 3中,当我调用api endpoint时,会出现404

基于调车场算法的科学计算器

OpenGL ES 3.0-纹理黑色

在Java 17中使用两个十进制数字分析时间时出错,但在Java 8中成功

带错误BER验证的itext8签名返回pdf

如何让JVM在SIGSEGV崩溃后快速退出?

Jolt变换JSON数组问题

将Spring Boot 3.2.0升级到3.2.1后查询执行错误

类型集合的Jackson JsonNode:类型引用的对象读取器应该是Singleton吗?

Java在操作多个属性和锁定锁对象时使用同步和易失性

如何在ImageIO或十二只猴子中旋转TIFF CMYK图像?

在实例化中指定泛型类型与不指定泛型类型之间的区别

为什么我的登录终结点不能被任何请求访问?

无限递归Java问题

rest api服务 spring 启动中出现IllegalFormatConversionException

如何使用Rascal Evaluator从编译的JAR访问Rascal函数?

如何用Micrometer&;斯普肯

错误:JOIN/ON的参数必须是boolean类型,而不是bigint类型.Java Spring启动应用程序