找回密码
 立即注册

QQ登录

只需一步,快速开始

阿仁
金牌服务用户   /  发表于:2023-11-14 10:10  /   查看:5533  /  回复:21
1金币
本帖最后由 Richard.Huang 于 2023-11-15 09:58 编辑

产品:SpreadJS
版本:V15.1.0

我想设置某列不可编辑,但是使用以下代码,整个单元格都被锁定了,麻烦问下什么原因

  1. sheet.options.isProtected = true;

  2. const style = new GC.Spread.Sheets.Style();
  3. style.locked = false;
  4. sheet.setDefaultStyle(style);

  5. const style1 = new GC.Spread.Sheets.Style();
  6. style1.locked = true;
  7. sheet.getRange(0, 0, 4, 4).setStyle(style1);
复制代码

21 个回复

正序浏览
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-11-23 11:49:06
22#
您这边导入的表格之所以默认样式无法生效,是因为导入的表格已经存在了单元格样式,并不是默认样式不能生效,在这种情况下,如果您新添加一些单元格,这些单元格的默认样式是可以生效的。

也就是说,如果您导入了一个表格,然后想要给这个表格中新增一些单元格,并且单元格的locked属性为false,是可以用默认样式来实现的,新增的这些单元格是没有样式的,所以是可以应用默认样式的。

插入行设置locked属性为false可以通过监听rowChanged的事件来实现,参考链接:https://demo.grapecity.com.cn/sp ... s.Events#rowchanged
回复 使用道具 举报
阿仁
金牌服务用户   /  发表于:2023-11-23 11:21:49
21#
Joestar.Xu 发表于 2023-11-22 17:31
您好,您说的“默认的一旦导入就出发保护了嘛”是什么意思?

我之前的回复是说如果单元格已经有了样式, ...

就是导入的表格默认样式改不了,这个不是您之前告诉我的嘛,事实也是如此。加入我一开始设置了所有单元格的locked为false,插入的是不是还是默认样式的locked:true。插入行设置false是不是我要重写插入的方法?
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-11-22 17:31:09
20#
本帖最后由 Joestar.Xu 于 2023-11-22 17:33 编辑

您好,您说的“默认的一旦导入就出发保护了嘛”是什么意思?

我之前的回复是说如果单元格已经有了样式,默认样式将不会生效,如果单元格没有样式,默认样式是会生效的。

“如何一开始设置默认为false”,这个我在之前的回复中提到过,您将默认样式的locked属性置为false即可,如果因为样式的问题导致默认样式没有生效,那就只能在插入后通过事件或其它方式将新插入的一行的locked置为false。
回复 使用道具 举报
阿仁
金牌服务用户   /  发表于:2023-11-22 14:39:21
19#
image.png881597595.png 您之前不是说默认的一旦导入就出发保护了嘛,那么如何一开始设置默认为false呢
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-11-22 14:24:51
18#
您好,一种方案是插入后手动去设置locked为false,另一种方案是一开始就设置默认的单元格的样式locked属性为false。
回复 使用道具 举报
阿仁
金牌服务用户   /  发表于:2023-11-22 11:19:26
17#
Joestar.Xu 发表于 2023-11-16 17:30
您好,您说的是我下图中的情况吗?

我今天试了下,确实是可以插入的,但是可能是默认locked:true的原因,我插入的行的所有列都是锁定的,这个需要我手动去解锁吗
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-11-16 17:30:34
16#
您好,您说的是我下图中的情况吗?

2.gif649052734.png
回复 使用道具 举报
阿仁
金牌服务用户   /  发表于:2023-11-16 14:07:15
15#
Joestar.Xu 发表于 2023-11-16 09:46
您好,我这边测试了一下,没有复现出您的问题。

你插入的列又和锁定的不冲突,你锁定列插入行试试,让锁定和插入有交叉
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2023-11-16 09:46:08
14#
您好,我这边测试了一下,没有复现出您的问题。

image.png289615782.png

image.png352246093.png

image.png11782530.png

如您所见,是可以正常插入的。
回复 使用道具 举报
阿仁
金牌服务用户   /  发表于:2023-11-16 08:38:13
13#
Joestar.Xu 发表于 2023-11-15 17:30
您这边提供一个可以复现您问题的Demo,这边复现后调研一下。

今天出差了,您可以根据我的描述试试吗?在控制台写一下代码应该相对容易复现。
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部