找回密码
 立即注册

QQ登录

只需一步,快速开始

antd

高级会员

46

主题

394

帖子

1088

积分

高级会员

积分
1088

时代开发者征文活动

antd
高级会员   /  发表于:2024-12-24 14:50  /   查看:53  /  回复:6
1金币
大佬们,最近有个项目用到spreadjs11版本,需要实现类似于下拉列表的功能,我在官方文档看到了两个功能符合我们的需求:
1.输入自动提示-->Autocomplete 单元格:
  1. https://demo.grapecity.com.cn/Sp ... /demos/autoComplete
复制代码

2.单元格下拉菜单-->
  1. https://demo.grapecity.com.cn/spreadjs/help/docs/features/cells/cell-dropdowns
复制代码


但是我试了一下这两种好像都不支持。这个也没办法进行版本升级,因为是用的别人开发的系统,系统里面一部分技术用的是spreadjs11
求大佬解惑



6 个回复

倒序浏览
Wilson.Zhang
超级版主   /  发表于:昨天 15:59
沙发
您好!如果不能使用,可能是您使用的版本不支持相关特性,需要使用支持特性的版本。

您提供的第二个下拉列表是SpreadJS单元格下拉框,从13版本开始支持该特性,可以参考官网产品文档了解:
https://demo.grapecity.com.cn/spreadjs/help/docs/rnotes/13x/releasenotesv13

如果您需要使用相关特性,建议您升级版本后使用。
回复 使用道具 举报
antd
高级会员   /  发表于:昨天 16:10
板凳
Wilson.Zhang 发表于 2024-12-24 15:59
您好!如果不能使用,可能是您使用的版本不支持相关特性,需要使用支持特性的版本。

您提供的第二个下拉 ...

好的好的,在论坛找到了一个可以用的下拉列表
图片.png678268127.png

回复 使用道具 举报
antd
高级会员   /  发表于:昨天 16:21
地板
Wilson.Zhang 发表于 2024-12-24 15:59
您好!如果不能使用,可能是您使用的版本不支持相关特性,需要使用支持特性的版本。

您提供的第二个下拉 ...

但是老师,我上面回复的这个方法,运行后,如果设置下拉框的单元格,被粘贴的数据覆盖,下拉框就没有了
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:昨天 17:32
5#
ComboBox是SpreadJS内置支持的单元格类型,其全名为“普通组合框单元格”,您可以参考官网教程了解详情:
https://demo.grapecity.com.cn/sp ... pes/combobox/purejs

您需要对设置了ComboBox的单元格粘贴数据吗?
猜测您应该是复制了整个单元格到ComboBox所在的单元格,这样的话粘贴的不只是数据而是单元格。
SpreadJS和Microsoft Excel一样支持选择性粘贴,您可以在粘贴时仅粘贴数值,如下动图所示:
选择性粘贴数值.gif

或者,设置ComboBox组合框单元格类型时,设置其可编辑,便可以复制单元格中的数值后双击ComboBox所在单元格进入输入态粘贴,如下动图所示:
ComboBox允许编辑.gif
回复 使用道具 举报
antd
高级会员   /  发表于:昨天 17:46
6#
Wilson.Zhang 发表于 2024-12-24 17:32
ComboBox是SpreadJS内置支持的单元格类型,其全名为“普通组合框单元格”,您可以参考官网教程了解详情:
...

      老师,这里的复制粘贴其目的是用户为了节省时间,他们最多的操作就是ctrl+c/v,所以可能很难像您上面说的那种方案让他们右键选择粘贴。
接着是老师说的第二种方案,因为这次我们使用spreadjs的场景并非独立的使用。而是我们公司的oa系统里面报表模块里面用到了spreadjs11版本(只不过他们提供了一个在线编辑功能可以让我们对spreadjs进行简单的自定义操作),不知道是版本的原因还是开发oa系统的工程师故意设计的,在表头并未出现下拉框的选项。

我看了一下官网,我感觉我们的需求其实最符合的就是这个功能,不知道11版本能否使用
  1. https://demo.grapecity.com.cn/SpreadJS/cdn/extendedExample/#/demos/autoComplete
复制代码

图片.png505936583.png
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:5 小时前
7#
antd 发表于 2024-12-24 17:46
老师,这里的复制粘贴其目的是用户为了节省时间,他们最多的操作就是ctrl+c/v,所以可能很难像您上 ...

选择性粘贴也可以通过代码设置好,之后ctrl+c/ctrl+v复制粘贴时即可仅粘贴数值了。参考如下代码:
  1. sheet.options.clipBoardOptions = GC.Spread.Sheets.ClipboardPasteOptions.values;
复制代码

关于您找到的资源中介绍的自动填充单元格是基于SpreadJS内置的单元格类型基类自定义的单元格类型,在自定义时未提供下拉小图标。
既然在您使用的11版本能够使用ComboBox单元格类型,那么可以参考使用您找到的资源中介绍的自定义单元格类型。您可以亲测下看能不能满足您的需要。

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部