找回密码
 立即注册

QQ登录

只需一步,快速开始

沉不住的心
中级会员   /  发表于:2021-6-28 10:56  /   查看:3937  /  回复:13
1金币
image.png662587890.png
就是spread的如图这种跳转sheet页的动作无法通过ActiveSheetChanged事件捕获到

最佳答案

查看完整内容

您导入了Excel文件,此时可以通过遍历单元格使用 getHyperlink 方法获取到超链接的信息。 解析url,获取到将要跳转的位置信息, 然后重新setHyperlink,执行自定义的代码。 如下图: 前面有提到,目前没有监听超链接跳转的事件, 所以除了上述方案,这边没有更好的建议了。

13 个回复

倒序浏览
最佳答案
最佳答案
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-6-28 10:56:12
来自 6#
本帖最后由 Lynn.Dou 于 2021-6-28 16:21 编辑

您导入了Excel文件,此时可以通过遍历单元格使用 getHyperlink 方法获取到超链接的信息。
image.png325598754.png

解析url,获取到将要跳转的位置信息,
然后重新setHyperlink,执行自定义的代码。
如下图:
  1. var h = sheet.getHyperlink(2,2);
  2. var url = h.url;
  3. sheet.setHyperlink(2, 2, { command: function() {
  4.     // 通过解析url获取将要跳转的位置,不再详细说明
  5.     //跳转到sheet3 A1 单元格
  6.     spread.setActiveSheetIndex(2);
  7.     var sheet3 = spread.getSheet(2);
  8.     sheet3.setSelection(0,0,1,1);
  9.     setTimeout(() => {
  10.         //定义自己的代码逻辑
  11.         alert("自定义跳转命令");
  12.     }, 0);
  13. }});
复制代码

image.png291851500.png



前面有提到,目前没有监听超链接跳转的事件,
所以除了上述方案,这边没有更好的建议了。




回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-6-28 11:04:57
2#
您好,
ActiveSheetChanged 是通过点击 表单栏中的表单名 切换表单 触发的。

如果是想监听跳转,执行一些操作,
可以通过 onClickAction 方法来为超链接设置一个回调函数。
当点击这个超链接之后,这个回调函数就会被执行。

具体请参考学习指南:
https://demo.grapecity.com.cn/sp ... es/hyperlink/purejs
回复 使用道具 举报
沉不住的心
中级会员   /  发表于:2021-6-28 11:24:11
3#
excel文件中定义的超链接跳转sheet页的,在spread中可以跳转,现在想捕获这个跳转的动作,您说的这个应该是手动设置超链接,我也试了一下捕获不到,这个应该是得有一个事件才能的,想问下有没有这个事件,或者其他捕获excel/sheet页跳转的方法
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-6-28 11:49:59
4#
本帖最后由 Lynn.Dou 于 2021-6-28 11:51 编辑

通过超链接跳转sheet,没有相关的事件可以监听到。
这一内部逻辑是通过代码实现sheet的切换和选择指定单元格,
而SJS目前的事件ActiveSheetChanged等都是通过点击切换表单栏来触发的。

您监听超链接跳转,应该是想实现一些操作。
建议您通过onClickAction 方法来为超链接设置一个回调函数,
在回调函数内实现sheet的跳转和单元格的选择,并执行自己的操作。
如果超链接单元格单独写了点击的回调方法,就不会再跳转到对应的链接,跳转对应链接是默认的方法,可以自己写JS方法实现跳转:

具体您可以参考附件的demo 和 下方技术博客。
https://gcdn.grapecity.com.cn/showtopic-90262-1-1.html

hyperlink.zip

860.5 KB, 下载次数: 83

回复 使用道具 举报
沉不住的心
中级会员   /  发表于:2021-6-28 14:24:02
5#
image.png230218199.png
我看您这边的例子都是手动设置超链接的啊,而我只是需要监听从excel里面已经设置好的跳转sheet的时候啊,我只需要在回调里知道他跳到了哪里啊,而且看您这边的回复"如果超链接单元格单独写了点击的回调方法,就不会再跳转到对应的链接,跳转对应链接是默认的方法,可以自己写JS方法实现跳转:",更糊涂了,上面照片里我写的无法触发 , 场景式在excel中设置好的sheet跳转超链接,我要监听到他跳转去了哪里,
回复 使用道具 举报
沉不住的心
中级会员   /  发表于:2021-6-28 16:20:04
7#
好的,虽然感觉有点麻烦,但应该可以解决,谢谢了
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-6-28 16:27:35
8#
您客气了,

您可以结合业务情况详细的描述下为什么要监听 超链接跳转 吗?
这边可以结合您的需求跟研发反馈下,看能否增加相应的事件。

注:详细的描述需求可以赢得金币奖励哦
回复 使用道具 举报
沉不住的心
中级会员   /  发表于:2021-6-28 16:35:32
9#
我们目前所做的项目基于spread进行二开,所以也说不太清楚,切换sheet页的时候需要触发事件,可以理解为单sheet页渲染,就是这样

评分

参与人数 1金币 +500 收起 理由
Lynn.Dou + 500 感谢您的分享

查看全部评分

回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-6-28 16:47:59
10#
本帖最后由 Lynn.Dou 于 2021-6-28 16:49 编辑
沉不住的心 发表于 2021-6-28 16:35
我们目前所做的项目基于spread进行二开,所以也说不太清楚,切换sheet页的时候需要触发事件,可以理解为单shee ...

感谢您的分享,您参考下上述方案解决此问题,
本帖就先结贴了,有问题欢迎另开新帖。

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