请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

湖南大商帮

中级会员

57

主题

192

帖子

571

积分

中级会员

积分
571
湖南大商帮
中级会员   /  发表于:2025-3-24 10:37  /   查看:83  /  回复:9
本帖最后由 湖南大商帮 于 2025-3-24 10:47 编辑

如何在“CellDoubleClick”这个事件里实现自动选中单元格的文字呢,试过了以下代码:
spread.bind(GC.Spread.Sheets.Events.CellDoubleClick, (sender, { row, col }) => {const sheet = spread.getActiveSheet();sheet.startEdit(true)})
无效,并不会选中

9 个回复

倒序浏览
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2025-3-24 11:35:18
沙发
您好,我理解您是想实现一个进入编辑后直接自动全选单元格的内容的效果,您可以试试以下代码看能否实现您的需求:

spread.bind(GC.Spread.Sheets.Events.CellDoubleClick, (sender, { row, col }) => {
  const div = document.querySelector("div[gcuielement='gcEditingInput']");
  const range = document.createRange();
  range.selectNodeContents(div);
  const selection = window.getSelection();
  selection.removeAllRanges();
  selection.addRange(range);
});

回复 使用道具 举报
湖南大商帮
中级会员   /  发表于:2025-3-24 11:44:10
板凳
感谢回复,以上样例代码在控制台执行了,并没有任何反应,不知道为什么。其二:没有像cellClick那样来一行 sheet.startEdit(true); 就完事这种简单的办法吗,还是说单机和双击事件的逻辑不一样
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2025-3-24 11:58:38
地板
您好,单击单元格不会进入编辑状态,双击会进入,而此时会和startEdit冲突,所以不能简单的使用startEdit来实现。

上面的代码我这边是可以的,如果不行,建议排查一下spread对象是否正确,以及是否获取到了正确的editorDom。

动画 (1).gif358590697.png
回复 使用道具 举报
湖南大商帮
中级会员   /  发表于:2025-3-24 12:59:36
5#
好的,感谢指导,那我再研究一下样例代码为何我这边无效的原因
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2025-3-24 13:35:31
6#
回复 使用道具 举报
湖南大商帮
中级会员   /  发表于:2025-3-24 16:52:54
7#
经研究,document.querySelector("div[gcuielement='gcEditingInput']");获得的元素里并没有文字的元素
QBA5`GS2Y0K7GO%@{62823G.png666817626.png
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2025-3-24 17:37:27
8#
您好,您需要在进入编辑状态后再获取DOM元素:

image.png434484252.png
回复 使用道具 举报
湖南大商帮
中级会员   /  发表于:2025-3-24 17:51:38
9#
原来如此,非常感谢哈
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2025-3-25 08:51:41
10#
不客气,那就先结贴了,后续有其他问题的话随时开新帖提问哈。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部