找回密码
 立即注册

QQ登录

只需一步,快速开始

幽游

注册会员

10

主题

25

帖子

97

积分

注册会员

积分
97
幽游
注册会员   /  发表于:2024-12-4 17:05  /   查看:147  /  回复:4
10金币

回车绑定了光标横向移动,
spread.commandManager().setShortcutKey("moveToNextCell", GC.Spread.Commands.Key.enter, false, false, false, false);

但是如何能跳过只读的单元格,光标只落得可编辑的单元格上

最佳答案

查看完整内容

在您找到的demo中,使用了Worksheet:setActiveCell()跳转至下一个非只读单元格。如果非只读单元格不在视窗内,可以通过Worksheet:showCell()将单元格移动到视窗中。只需将相关代码接到跳转成功处即可。 或者也可以通过Worksheet:showRow()将只读单元格所在行整体移动到视窗内。 可以参考官网API文档了解详情: Worksheet:showCell()--https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spread.Sheets.Worksheet# ...

4 个回复

倒序浏览
最佳答案
最佳答案
Wilson.Zhang
超级版主   /  发表于:2024-12-4 17:05:34
来自 5#
本帖最后由 Wilson.Zhang 于 2024-12-5 09:02 编辑

在您找到的demo中,使用了Worksheet:setActiveCell()跳转至下一个非只读单元格。如果非只读单元格不在视窗内,可以通过Worksheet:showCell()将单元格移动到视窗中。只需将相关代码接到跳转成功处即可。

或者也可以通过Worksheet:showRow()将只读单元格所在行整体移动到视窗内。

可以参考官网API文档了解详情:
Worksheet:showCell()--https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spread.Sheets.Worksheet#showcell
Worksheet:showRow()--https://demo.grapecity.com.cn/spreadjs/help/api/classes/GC.Spread.Sheets.Worksheet#showrow

回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-12-4 17:31:29
2#
image.png230067137.png

您好,不勾选这个选项即可。

参考链接:https://demo.grapecity.com.cn/sp ... owselectlockedcells
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-12-4 17:36:22
3#
本帖最后由 Wilson.Zhang 于 2024-12-4 17:41 编辑

您好!楼上版主的方案可行,但是如果您的业务场景中用到了表单保护或者同时存在有只读单元格和可写单元格,那您需要自定义一个命令。

在自定义命令中判断下一个单元格的锁定状态是否为true,如果为true,即为只读单元格,再移动至下一个单元判断,遍历直至锁定状态为false的单元格,再调用SpreadJS内置的moveToNextCells命令将光标移至该单元格即可。同时,为自定义的命令绑定快捷键。

可以通过sheet.getCell(row, col).locked()查询单元格是否锁定。
回复 使用道具 举报
幽游
注册会员   /  发表于:2024-12-4 17:49:32
4#
版主,主要是我不知道怎么通过代码来实现
demo.grapecity.com.cn/SpreadJS/cdn/extendedExample/#/demos/tabMove
有个例子,可以跳过只读单元格,但是如果显示行列比较多,光标回车到所显示的行列以外的单元格时,如何判断,让表格滚动到光标所在的单元格,代码该如何实现?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部