找回密码
 立即注册

QQ登录

只需一步,快速开始

dybxin

中级会员

44

主题

143

帖子

517

积分

中级会员

积分
517
dybxin
中级会员   /  发表于:2024-2-19 14:41  /   查看:1164  /  回复:3
5金币
本帖最后由 Richard.Huang 于 2024-2-19 15:56 编辑

开启表单保护, 然后在将list数据设置给单元格时,通过sheet.getRange(2 + index, 1, 1, 1, GC.Spread.Sheets.SheetArea.viewport).locked(false) 将其code列的单元格设置为可编辑项,当在点击保存校验时,将没校验过的单元格(示例中只有code列的单元格为可编辑项)和num列的单元格设置为红色, 经过测试发现校验之后code列单元格变为不可编辑. (附件是示例代码)

测试时可以点击在数据行末尾插入按钮实现空行的校验。另外还有一个问题, 我在项目中会遇到如果某一个的可编辑项被设置为空,此时校验未通过,且他的单元格背景色会被设置未红色, 但是num列的单元格不会被设置未红色。
这个问题在测试案例中没有复现。我想问这会和上面的问题是一个问题吗?

mamu.zip

2.55 KB, 下载次数: 116

最佳答案

查看完整内容

对于您的两个问题我来进行分别回答 1. 点击“保存校验”后,可编辑的单元格变成了不可编辑的单元格,这是因为您的默认style的locked属性是true,而您在设置单元格背景色的时候不是在原有的单元格style基础上去添加一些自定义的样式逻辑,而是new了一个新的style对象,这就造成原本的locked属性从false变成了true,您应该这样写才是正确的: 2. 第二个问题我没有复现,您可以测试一下上述更改后的代码,看能否解决您的问题

3 个回复

倒序浏览
最佳答案
最佳答案
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-2-19 14:41:48
来自 2#
对于您的两个问题我来进行分别回答
1. 点击“保存校验”后,可编辑的单元格变成了不可编辑的单元格,这是因为您的默认style的locked属性是true,而您在设置单元格背景色的时候不是在原有的单元格style基础上去添加一些自定义的样式逻辑,而是new了一个新的style对象,这就造成原本的locked属性从false变成了true,您应该这样写才是正确的:
image.png400948485.png

2. 第二个问题我没有复现,您可以测试一下上述更改后的代码,看能否解决您的问题
回复 使用道具 举报
dybxin
中级会员   /  发表于:2024-2-19 16:46:35
3#
本帖最后由 dybxin 于 2024-2-19 16:50 编辑
Richard.Huang 发表于 2024-2-19 15:52
对于您的两个问题我来进行分别回答
1. 点击“保存校验”后,可编辑的单元格变成了不可编辑的单元格,这是 ...

第二个问题我再排查下。  另外就是 设置完保存校验之后原来不可编辑的num单元格,变成了可编辑了,以及 通过 按钮在行尾加入的行code本身被设置成不可编辑了, 我明明copy 了行的除了value的所有属性。这是什么原因造成的?
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-2-19 19:11:00
4#
dybxin 发表于 2024-2-19 16:46
第二个问题我再排查下。  另外就是 设置完保存校验之后原来不可编辑的num单元格,变成了可编辑了,以及  ...

同样的原因,因为locked属性本质上是在style上的,只是为了方便起见,可以通过getRange().locked来设置而已,如果您还是期望处于锁定状态不可编辑,您就在copyTo结束后将新插入的行通过getRange().locked来设置单元格的锁定状态即可
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部