找回密码
 立即注册

QQ登录

只需一步,快速开始

Melody

中级会员

29

主题

63

帖子

591

积分

中级会员

积分
591

微信认证勋章

Melody
中级会员   /  发表于:2018-10-22 19:54  /   查看:6736  /  回复:11
本帖最后由 Melody 于 2018-10-22 19:56 编辑

1. image.png809208679.png 右键菜单 有现成的 能直接调用查找功能吗

2. 右键菜单有现成的 能直接调用的替换功能吗

3.右键菜单 image.png698540649.png 显示的顺序如何调换 比如把清除放到第一位  过滤换到第二位等

11 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-10-23 11:33:55
沙发
您好,Spread JS右键菜单可以自己自由编辑定义,只要您获取spread.contextMenu.menuData数组即可自由编辑。

1、您截图中的查找菜单是在线表格编辑器的吗?Spread JS 表格部分没有这个对话框,只能由您自己来绘制查找窗口。

2、右键菜单没有能直接调用的替换功能。

3、我这边上传一个Demo,简单演示了更换右键菜单命令顺序的操作。

ContextMenu.html

1.37 KB, 下载次数: 122

回复 使用道具 举报
Melody
中级会员   /  发表于:2018-10-23 14:48:35
板凳
KevinChen 发表于 2018-10-23 11:33
您好,Spread JS右键菜单可以自己自由编辑定义,只要您获取spread.contextMenu.menuData数组即可自由编辑。 ...

image.png827940368.png 想实现这样一个效果 去掉粘贴选项 只保留全部粘贴或者值粘贴
类似于这个效果
image.png208132933.png 并且更改 全部粘贴为 粘贴
附下列代码
spread.contextMenu.menuData.forEach(function (arg, i) {if (arg && arg.name === 'gc.spread.pasteOptions') {
    spread.contextMenu.menuData.splice(i, 1)
}

if(arg && arg.group === 'gc.spread.pasteOptions'){
    spread.contextMenu.menuData.splice(i, 4)
}
if (item && item.name === 'gc.spread.pasteAll') {
    item.text = '粘贴'
}}无法实现更改全部粘贴 为粘贴的效果
回复 使用道具 举报
Melody
中级会员   /  发表于:2018-10-23 15:21:48
地板
本帖最后由 Melody 于 2018-10-23 16:24 编辑

现在的例子 https://demo.grapecity.com.cn/Sp ... #/demos/basicSearch 只能一个一个查找显示
那么查找全部的功能应该怎么实现呢
image.png208072508.png
image.png662285766.png
image.png393637084.png
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-10-23 18:12:00
5#
Melody 发表于 2018-10-23 14:48
想实现这样一个效果 去掉粘贴选项 只保留全部粘贴或者值粘贴
类似于这个效果
并且更改 全部粘贴为 粘 ...

您可以在Demo下面加一段代码试试:
  1. var paste = {
  2.             command: "gc.spread.contextMenu.pasteAll",
  3.             text: "粘贴",
  4.             name: "gc.spread.pasteOptions",
  5.             iconClass: "gc-spread-pasteOptions",
  6.             workArea: "viewportcolHeaderrowHeaderslicercorner"
  7.         };
  8.         menuData.unshift(paste);
复制代码
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-10-23 18:28:11
6#
Melody 发表于 2018-10-23 15:21
现在的例子 https://demo.grapecity.com.cn/Sp ... #/demos/basicSearch 只能一个一个查找显示
那么查找全 ...

Match exactly是全词匹配,也就是全单元格匹配,Use wildcards是使用通配符,关于通配符您可以搜索Excel的通配符查询来具体了解一下。

SpreadJS没有类似SearchAll的方法,需要您自己使用search的方法,不断改变索引的方式来实现,其实学习指南的Demo中已经实现了大部分功能,您可以参考一下,用程序缓存上次查找的结果后继续调用find next即可。
回复 使用道具 举报
Melody
中级会员   /  发表于:2018-10-24 09:19:03
7#
KevinChen 发表于 2018-10-23 18:12
您可以在Demo下面加一段代码试试:

const paste = {
    command: "gc.spread.contextMenu.pasteAll",
    text: "粘贴",
    name: "gc.spread.pasteOptions",
    iconClass: "gc-spread-pasteOptions",
    workArea: "viewportcolHeaderrowHeaderslicercorner"
};
spread.contextMenu.menuData.unshift(paste); image.png963714904.png 效果是这样的

image.png899543762.png
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-10-24 11:52:37
8#
是的,上边那个Demo有bug,不能在循环中直接删除被迭代数组的值,我给您再上传一个Demo:

CustomContextMenu.html

2.07 KB, 下载次数: 139

回复 使用道具 举报
Melody
中级会员   /  发表于:2018-10-24 15:32:39
9#
KevinChen 发表于 2018-10-24 11:52
是的,上边那个Demo有bug,不能在循环中直接删除被迭代数组的值,我给您再上传一个Demo:

image.png109398802.png 红框选中的分隔线 选中单元格时有
const separator = {
    type:"separator"
}
spread.contextMenu.menuData.push(separator)我是这样加上的 加完后发现选中列头和行头时没有 image.png964379577.png 应该怎么处理一下呢 让选中行头或者列头时也加上分割线


回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-10-24 16:59:16
10#
没能重现您的问题,我这边单元格和列头行头显示的格式是一致的,

image.png213692015.png

image.png616181640.png

image.png869996032.png

您可以把你的代码逻辑打包上传附件,我这边排查一下。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部