Rihanna的话筒 发表于 前天 15:24

【V16】我设置锁定一列,但是不生效


要实现的功能是,用户右键点击一列的序号,右侧菜单点击自定义的一个command,走以下的逻辑
sheet.options.isProtected = false;
sheet.getCell(1,1).locked(true);
设置了第一列为锁定状态,但是表格里面没有锁定

Rihanna的话筒 发表于 前天 15:33

我用以下方法去实现,会导致其他其他列的单元格的工具栏也是锁定的状态
let style = sheet.getDefaultStyle();
style.locked = false;
sheet.setDefaultStyle(style);

let range = new GC.Spread.Sheets.CellRange(sheet, -1, 0, -1, 2);
range.locked(true);

sheet.options.isProtected = true;

Lynn.Dou 发表于 前天 15:57

Rihanna的话筒 发表于 2025-1-7 15:33
我用以下方法去实现,会导致其他其他列的单元格的工具栏也是锁定的状态
let style = sheet.getDefaultStyl ...

您好,
根据您提供的代码进行测试,第一列和第二列是禁止编辑的,其余列不可编辑,即应该满足您的需求。
如果您那边测试结果不一致,猜测可能与其他代码产生了冲突。
建议提供一个可复现demo,我们调研看看原因。

Rihanna的话筒 发表于 前天 16:22

Lynn.Dou 发表于 2025-1-7 15:57
您好,
根据您提供的代码进行测试,第一列和第二列是禁止编辑的,其余列不可编辑,即应该满足您的需求。 ...

噢噢噢噢,确实与其他地方冲突了。那我现在如何去获取页面上已经设置了锁定的列呢?有这样的方法吗

Lynn.Dou 发表于 昨天 10:28

本帖最后由 Lynn.Dou 于 2025-1-8 10:29 编辑

可以使用getActualStyle方法获取单元格/区域的实际应用的样式,其中包含locked值。
示例代码:
sheet.getActualStyle(-1,1).locked
页: [1]
查看完整版本: 【V16】我设置锁定一列,但是不生效