找回密码
 立即注册

QQ登录

只需一步,快速开始

薇命是从

金牌服务用户

12

主题

25

帖子

105

积分

金牌服务用户

积分
105
薇命是从
金牌服务用户   /  发表于:2024-3-6 11:27  /   查看:764  /  回复:10
本帖最后由 Richard.Huang 于 2024-3-8 09:54 编辑

产品:SpreadJS
版本:V17.0.0

1、首先设置模板
(1)、设置字段数据关联
image.png888002624.png
(2)、设置对应单元格数据判断规则
image.png183902587.png
2、当用户填写时、可以填写年龄部分
(1)、前端可以获取到用户在年龄对应单元格所输入的数据以及判断规则
例如:
  1. {
  2. name: 'age',
  3. value: '99',
  4. max: 100,
  5. min: 1
  6. }
复制代码

(2)、随后后端针对用户输入的数据进行合格不合格的计算。
image.png980241088.png

10 个回复

倒序浏览
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-3-6 12:31:16
沙发
您好,您的问题是第三步,前端如何拿到数据验证的信息吗?
如果是的话,可以通过下面的代码获取类型,最大值 ,最小值
image.png886733703.png


  1. <div>let dv = sheet.getDataValidator(0,0)
  2. dv.type()
  3. dv.value1()
  4. dv.value2()</div>
复制代码



其中type()返回的值可以参考
https://demo.grapecity.com.cn/sp ... dation.CriteriaType

回复 使用道具 举报
薇命是从
金牌服务用户   /  发表于:2024-3-6 13:09:02
板凳
Ellia.Duan 发表于 2024-3-6 12:31
您好,您的问题是第三步,前端如何拿到数据验证的信息吗?
如果是的话,可以通过下面的代码获取类型,最大 ...

这个方法我有看到、有没有针对于绑定的数据源获取坐标的方法呢
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-3-6 14:14:42
地板
您好,目前可以通过getBindingPath通过row,col获取到字段。
但是您想要通过字段获取坐标,所以需要遍历下。
先获取当前UsedRange


  1. let usedRange = sheet.getUsedRange(GC.Spread.Sheets.UsedRangeType.all)
复制代码


然后遍历单元格,判断getBindingPath返回的是否是age ,如果是,则返回当前坐标


  1. <div>for(let i = usedRange.row;i<usedRange.row+usedRange.rowCount;i++){
  2.     for(let j = usedRange.col;j<usedRange.col+usedRange.colCount;j++){
  3.         console.log("11111",sheet.getBindingPath(i,j))
  4.         if(sheet.getBindingPath(i,j)=='age'){
  5.             console.log(i,j)
  6.         }
  7.     }
  8. }</div>
复制代码



回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-3-6 14:16:57
5#
本帖最后由 Ellia.Duan 于 2024-3-6 14:45 编辑

您问题中提到的第四点,通过后端去验证数据 ,这个通过SpreadJS的数据验证不能实现吗?
回复 使用道具 举报
薇命是从
金牌服务用户   /  发表于:2024-3-6 14:57:55
6#
Ellia.Duan 发表于 2024-3-6 14:14
您好,目前可以通过getBindingPath通过row,col获取到字段。
但是您想要通过字段获取坐标,所以需要遍历下 ...

好的、我试试
回复 使用道具 举报
薇命是从
金牌服务用户   /  发表于:2024-3-6 15:09:45
7#
Ellia.Duan 发表于 2024-3-6 14:16
您问题中提到的第四点,通过后端去验证数据 ,这个通过SpreadJS的数据验证不能实现吗?

前端获取校验结果也得遍历所有是么
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-3-6 16:04:38
8#
首先、SpreadJS设置数据验证后,如果输入不正确的数据,是不会输入成功。
如下动图一

其次,如果是先设置的数据,然后设置的数据验证,这时可以通过以下代码验证
sheet.isValid(row, col, sheet.getValue(row,col));
如下动图二

数据验证二.gif
数据验证一.gif
回复 使用道具 举报
薇命是从
金牌服务用户   /  发表于:2024-3-6 16:54:33
9#
Ellia.Duan 发表于 2024-3-6 16:04
首先、SpreadJS设置数据验证后,如果输入不正确的数据,是不会输入成功。
如下动图一

好的谢谢
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-3-6 17:04:30
10#
不客气,有问题随时沟通。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部