找回密码
 立即注册

QQ登录

只需一步,快速开始

jing-77

注册会员

5

主题

31

帖子

102

积分

注册会员

积分
102
jing-77
注册会员   /  发表于:2024-1-11 15:10  /   查看:2098  /  回复:7
本帖最后由 Richard.Huang 于 2024-1-15 15:42 编辑

产品:SpreadJS
版本:V15

单元格下拉选项的内容是从E那一列获取的,有可能之后E那一列会换成别的列或者会换成别的sheet页里的一列,所以怎样能不写成固定的哪一列的从第几行到第几行的内容,而是不管怎么变都能获取下拉的选项值呢
image.png418048705.png image.png964560852.png

7 个回复

倒序浏览
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-1-11 15:39:02
沙发
您好,根据您的描述,您似乎是下拉数据验证的选项受限于页面某一区域的内容,而您现在希望让下拉选项中的值不再由sheet页某范围提供,而是直接写死在数据验证器内是吗?

如果是的话,您只要将来源换成您要的选项并用逗号隔开即可。
image.png955376281.png
如果是代码的话,您可以参考以下API:https://demo.grapecity.com.cn/sp ... createlistvalidator
回复 使用道具 举报
jing-77
注册会员   /  发表于:2024-1-11 15:49:59
板凳
Richard.Huang 发表于 2024-1-11 15:39
您好,根据您的描述,您似乎是下拉数据验证的选项受限于页面某一区域的内容,而您现在希望让下拉选项中的值 ...

嗯...这样倒是也行,就是还得去改。
其实我的需求还是下拉内容要从sheet页的某一列获取,只是比较活,从代码方面怎么能获取到呢
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-1-11 16:56:18
地板
您好,也许您可以考虑下自定义公式名称,如设置某一片区域公式别名为省份
image.png291579589.png
然后设置数据验证,列表为省份,如下图


image.png274056395.png

设置后A2单元格可以选择省份
image.png559080199.png
此时,移动码表中的省份区域,此时公式管理器中引用位置也会发生变化,如下图所示:
image.png592192992.png
也就达到了您的需求,如果下拉框中的数据源引用位置发生变化,下拉框数据仍然存在。
相关代码如下:
  1.        spread.addCustomName('省份','=码表!$A$1:$E$1', 0, 0);
复制代码
  1.      var dv = GC.Spread.Sheets.DataValidation.createFormulaListValidator("=省份");
  2.         sheet.setDataValidator(1, 0, 5,1,dv,GC.Spread.Sheets.SheetArea.viewport);
复制代码
具体代码可以参考附件中的demo。

联动.html

5.04 KB, 下载次数: 130

回复 使用道具 举报
jing-77
注册会员   /  发表于:2024-1-11 17:23:00
5#
感谢提供方法,就是这种方式也需要改,如果是我目前写的那种方式,可以怎么获取下拉选项呢
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-1-11 17:55:24
6#
您好,可以参考此代码:
  1. sheet.getDataValidator(1,0).getValidList(sheet,1,0)
复制代码


image.png895132751.png
回复 使用道具 举报
jing-77
注册会员   /  发表于:2024-1-12 11:20:10
7#
Ellia.Duan 发表于 2024-1-11 17:55
您好,可以参考此代码:

按照此方法可以获取到,开心,感谢回复
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-1-12 11:24:23
8#
jing-77 发表于 2024-1-12 11:20
按照此方法可以获取到,开心,感谢回复

好的,本帖子的问题解决,这里就先结帖了。后续如果您有新的问题,也欢迎创建新的求助帖。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部