spread 超链接跳转sheet 不触发 GC.Spread.Sheets.Events.ActiveSheetChanged 事件处理

news/2024/7/9 23:37:50 标签: spreadsheet, 前端, excel, vue

快速跳转

    • 1. 发现问题
    • 2. 解决思路
    • 3. 代码实现

1. 发现问题

说明:
1. 在项目中发现使用模板自带的目录超链接跳转sheet 不触发提前设置好的监听, 无法执行后续功能, 影响正常使用
2. 通过电话咨询葡萄城开发人员, 答复: 暂时没有超链接跳转sheet 监听功能
3. 通过查找资料和论坛说明有了简单的想法, 并着手实现监听目录页超链接跳转sheet 功能

2. 解决思路

1. 想到点击超链接会触发单元格状态改变所以监听 GC.Spread.Sheets.Events.SelectionChanged 事件
2. 根据监听获取当前sheet 及当前点击的单元格, 通过spread 提供的 getHyperlink 方法获取当前单元格是否为超链接
3. 然后根据获取的结果再次开启监听解决问题

3. 代码实现

activeSheet.bind(GC.Spread.Sheets.Events.SelectionChanged , (e, info) => {
                const sheet = this.spread.getActiveSheet();
                const activeSelections = sheet.getSelections();
                if (activeSelections.length) {
                    const hyperLinkInfo = sheet.getHyperlink(activeSelections[0].row, activeSelections[0].col);
                    if (hyperLinkInfo && hyperLinkInfo.url) {
                        setTimeout(() => { // 这里使用延时给予模板跳转反应时间
                        	// 开启监听
                        	/*
                        		GC.Spread.Sheets.Events.ActiveSheetChanged 
                        		同样调用this.watchActiveSheet 函数处理
                        	*/
                            this.watchActiveSheet(hyperLinkInfo)
                        }, 200)
                    }
                }
            });

http://www.niftyadmin.cn/n/1483364.html

相关文章

C++数据结构——迷宫问题之最短时间

迷宫问题之最短时间 小明某天不小心进入了一个迷宫(如上图所示),请帮他计算走出迷宫的最少的时间。规定每走一格需要1个单位时间。如果不能走到出口,则输出impossible。每次能走的仅有上、下、左、右4个方向。 输入格式: 测试数据…

主浏览器从计算机 X上收到 一个服务器宣告,认为它是传输 XXX 上的域主浏览器。...

主浏览器从计算机 X上收到 一个服务器宣告,认为它是传输 XXX 上的域主浏览器。 主浏览器已停止或一个主浏览器选举已开始。注册表hkey_local_machine\system\currentcontrolset\services browser\parameters\maintainserverlist这个就是浏览器列示,键值是…

【算法】归并排序与快排

归并排序 归并排序是另一种不同的排序方法,因为归并排序使用了递归分治的思想,所以理解起来比较容易。其基本思想是,先递归划分子问题,然后合并结果。把待排序列看成由两个有序的子序列,然后合并两个子序列&#xff0c…

树形数据递归过滤

这里写目录标题树形数据过滤寻找解决办法代码实现树形数据过滤 说明: 遇到问题树形数据过滤, 并保留原有树形结构不变, 即如果有子集被选中,父级同样保留 寻找解决办法 思路: 1. 对数据进行处理, 根据过滤标识对匹配的数据添加标识 例如: visible: true2. 对有标识的子集的父…

C++数据结构——统计子串

统计子串 编写算法,统计子串t在主串s中出现的次数。 输入格式: 首先输入一个整数T,表示测试数据的组数,然后是T组测试数据。每组测试数据在第一行中输入主串s,在第二行中输入子串t,s和t中不包含空格。 输出格式: 对于每…

Java学习笔记#多态

多态:指的是同一个方法调用,由于对象不同,可能会有不同的行为。(现实生活中,同一个方法,具体的实现会不一样) 要点: 1.多态是方法的多态,不是属性的多态。(多…

用LinqToExcel处理有标题表格的数据

1. 先根据表格标题定义一个类。 public class News { public string Title { set; get; } public string Content { set; get; } public DateTime AddTime { get; set; } } 2. 引入Excel工作簿文件string filename "c:\new3.xls";ExcelQueryFactory excel new Exc…

C++数据结构——最长公共子串

一个序列中去掉若干&#xff08;也可以不去掉&#xff09;元素剩下的部分称为其子序列。对于给定的序列X <x1&#xff0c;x2&#xff0c;…&#xff0c;xm>&#xff0c;称序列Z <z1&#xff0c;z2&#xff0c;…&#xff0c;zk>为X的一个子序列&#xff0c;仅当在…