找回密码
 立即注册

QQ登录

只需一步,快速开始

Ellia.Duan SpreadJS 开发认证

超级版主

68

主题

4680

帖子

7242

积分

超级版主

Rank: 8Rank: 8

积分
7242

SpreadJS 认证SpreadJS 高级认证

Ellia.Duan SpreadJS 开发认证
超级版主   /  发表于:2024-8-22 14:43  /   查看:149  /  回复:0
本帖最后由 Ellia.Duan 于 2024-8-22 14:44 编辑

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

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

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

通过上述的描述,我们能拿到两个方案,使其不显示”#“ ,分别是调整列宽,使列宽足以显示整个值;溢出模式
1、调整列宽
  1. sheet.setColumnWidth(0,100)
复制代码
2、溢出模式
  1. spread.options.numbersFitMode = 1;
复制代码
结果如下:
image.png602495421.png
除此之外,我们还有什么方式呢?
3、 显示缩略符号:
  1. sheet.getCell(row, col).showEllipsis(true);
复制代码
结果如下:
image.png308468322.png
【注意】 :缩略符号仅在溢出模式下生效 ,在隐藏模式下,无效。
4、 缩小字体
  1.   sheet.getCell(row, col).shrinkToFit(true)
复制代码
结果如下:

image.png937218627.png
【注意】 :缩小字体在溢出模式和隐藏模式下都无效。
5、转换为文本
如果此值不会参与公式计算,可以考虑将其转换为文本,并进行自动换行,如下图所示:
image.png986072082.png
用代码的实现方式是:
  1. sheet.setValue(0,0 ,sheet.getValue(0,0).toString())
  2. sheet.getCell(0,0).wordWrap(true)
  3. sheet.autoFitRow(0)
复制代码



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


0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部