找回密码
 立即注册

QQ登录

只需一步,快速开始

Edie

注册会员

8

主题

21

帖子

77

积分

注册会员

积分
77
Edie
注册会员   /  发表于:2023-3-1 11:16  /   查看:1046  /  回复:4
根据搜索推荐,给excel的每个sheet都绑定单元格点击事件,代码如下


var sheets = spread.sheets;

sheets.forEach(function(sheet) {
                sheet.bind(GC.Spread.Sheets.Events.CellClick, function(sender, args) {
                    // 处理单元格点击事件的代码
                    console.log('row', args.row)
                    console.log('col', args.col)
                    console.log(activeSheet.getCell(args.row, args.col).text())
                });
            });

代码执行之后,点击第二个sheet的单元格时,获取的还是第一个sheet的单元格的值,无法获取第二个sheet单元格的值,请问用什么方法改进

4 个回复

倒序浏览
Edie
注册会员   /  发表于:2023-3-1 11:27:17
沙发
刚又看了一下代码,发现点击事件是进入了,行列也获取到了,但是获取的text还是sheet1的text
image.png982809143.png
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-3-1 15:34:11
板凳
你看一下你的代码中一直用的是activeSheet.getCell(args.row, args.col)
这个activeSheet,是你自己在通过代码获取到的第一个sheet,那么取的值自然都是第一个sheet的值了

可以参考一下这个事件的接口
https://demo.grapecity.com.cn/sp ... tml#event:CellClick

实际上是可以获取到点击的sheet的。通过args.sheet即可,所以代码应该是
args.sheet.getCell(args.row, args.col)
回复 使用道具 举报
Edie
注册会员   /  发表于:2023-3-1 15:44:21
地板
Richard.Ma 发表于 2023-3-1 15:34
你看一下你的代码中一直用的是activeSheet.getCell(args.row, args.col)
这个activeSheet,是你自己在通过 ...

好的呢,谢谢,已经改过啦
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-3-1 16:52:27
5#
好的,不客气
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部