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(() => {
this.watchActiveSheet(hyperLinkInfo)
}, 200)
}
}
});