Ellia.Duan 发表于 2024-8-22 14:43:12

数字或者日期放不下了,出现了###

本帖最后由 Ellia.Duan 于 2024-8-22 14:44 编辑

有一些用户发现,当为一个单元格设置格式为”数值“,且输入较多数字时,出现了”#####“ ,如下图所示:


不想让其出现###,有时候在导出PDF时,显示###,没有任何可读性。那怎么办呢?

首先,我们先讲下,为什么会出现”#“呢?
在SpreadJS中,当列的宽度不足以显示整个值时,SpreadJS支持日期和数字的自适应显示模式。 默认情况下,当列宽无法显示完整值时,该值将会隐藏(#),这称为隐藏模式。
还有一种模式称之为”溢出模式“ ,此模式允许其溢出到相邻单元格中来显示完整值。

通过上述的描述,我们能拿到两个方案,使其不显示”#“ ,分别是调整列宽,使列宽足以显示整个值;溢出模式
1、调整列宽
sheet.setColumnWidth(0,100)2、溢出模式
spread.options.numbersFitMode = 1; 结果如下:

除此之外,我们还有什么方式呢?
3、 显示缩略符号:
sheet.getCell(row, col).showEllipsis(true);结果如下:

【注意】 :缩略符号仅在溢出模式下生效 ,在隐藏模式下,无效。
4、 缩小字体
sheet.getCell(row, col).shrinkToFit(true)结果如下:


【注意】 :缩小字体在溢出模式和隐藏模式下都无效。
5、转换为文本
如果此值不会参与公式计算,可以考虑将其转换为文本,并进行自动换行,如下图所示:

用代码的实现方式是:
sheet.setValue(0,0 ,sheet.getValue(0,0).toString())
sheet.getCell(0,0).wordWrap(true)
sheet.autoFitRow(0)


如果还有什么其他方式,也欢迎大家补充。


页: [1]
查看完整版本: 数字或者日期放不下了,出现了###