找回密码
 立即注册

QQ登录

只需一步,快速开始

动爸
金牌服务用户   /  发表于:2024-10-14 11:23  /   查看:322  /  回复:9
50金币
SPJS版本 V17
问题:


禁止用户调整行高列宽后,用户在界面中还可以选择一个单元格输入大量的数据,然后点击【自动换行】按钮,行高就被改变了。
结果用户发现错了,行高又没有办法改回来,业务就没有办法进行下去了。

有没有方法可以进行限制行高这个问题呢?

我们就是简单地使用了这个限制的代码
// 禁止调整行高列宽
spread.options.allowUserResize=false;



最佳答案

查看完整内容

我们通过加了一个按钮叫恢复高度,让用户重新设置就好了。

9 个回复

倒序浏览
最佳答案
最佳答案
动爸
金牌服务用户   /  发表于:2024-10-14 11:23:23
来自 7#
我们通过加了一个按钮叫恢复高度,让用户重新设置就好了。
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-10-14 12:09:14
2#
您好!需要确认下您的设置,您通过spread.options.allowUserResize=false设置禁止用户修改行高列宽吗?该选项控制用户通过光标拉动单元格边框以修改行高列宽,并不禁止通过API或如下图所示UI修改行高列宽。
行高列宽设置.png630774230.png

根据您的描述,禁止了用户修改行高列宽后,对单元格设置较长文本后自动换行伴随有自适应行高,而后修改单元格内容为短文本,此时单元格行高不变。在上述操作后的情况下,如果希望单元格行高可以根据单元格内容自适应行高,那么,可以通过Worksheet:autoFitRow()自适应行高或者通过工具栏菜单选项设置,如下动图所示。

自适应行行高.gif
回复 使用道具 举报
动爸
金牌服务用户   /  发表于:2024-10-14 13:08:59
3#
Wilson.Zhang 发表于 2024-10-14 12:09
您好!需要确认下您的设置,您通过spread.options.allowUserResize=false设置禁止用户修改行高列宽吗?该选 ...

已经设置了,我们的目的就是什么情况下都不能改变行高,如果里面的内容超出。那么就隐藏
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-10-14 15:09:45
4#
动爸 发表于 2024-10-14 13:08
已经设置了,我们的目的就是什么情况下都不能改变行高,如果里面的内容超出。那么就隐藏

在没有重设行高的情况下,输入单元格的内容无论多长,都不会影响单元格原有的行高和列宽。如果单元格文本内容较长,对其设置自动换行也会自适应调整行高。理解您的需求是,在单元格文本长度超过长时,不允许单元格行高变化,那么,可以用省略号表示超出部分,如下动图所示。
showEllipsis.gif

可以通过如下代码设置:
  1. //  对单元格A1设置长文本
  2. sheet.setValue(0, 0, 'aaaaaaaaaaaaaaaaaaaaaaaaaa');
  3. var style = new GC.Spread.Sheets.Style();
  4. //  设置单元格文本越界显示省略号,即截断显示,但不影响原值
  5. style.showEllipsis = true;
  6. //  对单元格A1设置样式
  7. sheet.setStyle(0, 0, style);
复制代码

可以参考官网API文档了解详情:
Style:showEllipsis--https://demo.grapecity.com.cn/sp ... .Style#showellipsis
回复 使用道具 举报
动爸
金牌服务用户   /  发表于:2024-10-14 17:06:20
5#
Wilson.Zhang 发表于 2024-10-14 15:09
在没有重设行高的情况下,输入单元格的内容无论多长,都不会影响单元格原有的行高和列宽。如果单元格文本 ...

这个不是我想要的。我从来没有说过要省略号,就是假如现在的单元格只能显示:abcd,那么他输入的是abcdefg的话,那么就是显示abcd就可以了。点击自动换行也不能更改行高。
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-10-14 17:51:28
6#
动爸 发表于 2024-10-14 17:06
这个不是我想要的。我从来没有说过要省略号,就是假如现在的单元格只能显示:abcd,那么他输入的是abcdef ...

因为您在问题描述中有提到”点击【自动换行】按钮“,如下图所示,”自动换行“按钮除了将文本这段自动换行外,还将根据文本换行后的高度自适应调整行高。这才提供了截断文本并将不显示部分用省略号代替显示。
问题描述.jpg222362975.png

如果不需要用省略号代替截断文本内容,那么可以调用CellRange:wordWrap()设置自动换行,该接口只对单元格文本做截断换行处理,不调整单元格行高,如下动图所示。
wordWrap.gif

可以参考官网API文档了解详情:
https://demo.grapecity.com.cn/sp ... .CellRange#wordwrap
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-10-22 10:20:12
8#
动爸 发表于 2024-10-22 10:01
我们通过加了一个按钮叫恢复高度,让用户重新设置就好了。

在自动换行前保存单元格的原始行高,自动换行后再恢复被换行拉伸的行高为原始行高,请问是这样吗?
回复 使用道具 举报
动爸
金牌服务用户   /  发表于:2024-10-22 10:28:35
9#
Wilson.Zhang 发表于 2024-10-22 10:20
在自动换行前保存单元格的原始行高,自动换行后再恢复被换行拉伸的行高为原始行高,请问是这样吗?

不是,我们自定义了一个按钮,是让用户手动点一下恢复行高按钮。
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-10-22 11:55:02
10#
动爸 发表于 2024-10-22 10:28
不是,我们自定义了一个按钮,是让用户手动点一下恢复行高按钮。

了解了,解决了就好,那就结帖了。如有新问题,欢迎发新帖沟通。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部