zjac 发表于 2023-6-26 13:31:11

[spreadjs v16.1.3] 设计器保护工作表与代码设置效果不同[SJS-18870]

本帖最后由 Joestar.Xu 于 2023-6-26 15:56 编辑

请教一下,使用设计器设置全部单元格锁定并保护工作表,开放筛选和排序权限,为何与代码设置结果不同,设计器设置的,在操作栏可以进行排序,而代码设置的操作栏的排序按钮全部被置灰。录屏和代码如下:

图为设计器手动设置:



图为代码设置:



以下为代码(spreadjs 16.1.3):

spread.sheets.forEach(sheet => {
      sheet.options.protectionOptions = {
      allowFilter: true,
      allowSort: true
      }
      sheet.options.isProtected = true;
      sheet.getRange(0, 0, sheet.getRowCount(), sheet.getColumnCount()).locked(true);
    })


Joestar.Xu 发表于 2023-6-26 15:35:13

本帖最后由 Joestar.Xu 于 2023-6-26 15:43 编辑

您好,问题已复现,这边调查一下,有进展我会在帖子下回复您。

本帖先做保留处理了。

zjac 发表于 2023-6-26 15:49:59

Joestar.Xu 发表于 2023-6-26 15:35
您好,问题已复现,这边调查一下,有进展我会在帖子下回复您。

本帖先做保留处理了。

好的,感谢

Joestar.Xu 发表于 2023-6-26 15:57:14

zjac 发表于 2023-6-26 15:49
好的,感谢

您客气了:mj72:

Joestar.Xu 发表于 2023-6-30 11:47:49

您好,请问您为什么要设置下面这句代码呢?

sheet.getRange(0, 0, sheet.getRowCount(), sheet.getColumnCount()).locked(true);

因为初始状态下所有的单元格的locked属性都是true,所以能否详细说明一下?

zjac 发表于 2023-7-5 13:37:15

Joestar.Xu 发表于 2023-6-30 11:47
您好,请问您为什么要设置下面这句代码呢?

sheet.getRange(0, 0, sheet.getRowCount(), sheet.getColum ...

我理解单元格锁定的状态应该是保存在excel文件中的,我考虑用户可能在上传文件到spreadjs之前,已经对一些单元格进行过设置,所以先将所有状态重置

Joestar.Xu 发表于 2023-7-5 13:59:38

zjac 发表于 2023-7-5 13:37
我理解单元格锁定的状态应该是保存在excel文件中的,我考虑用户可能在上传文件到spreadjs之前,已经对一 ...

收到,我们这边再调研一下,有进展我会再回复您。

Joestar.Xu 发表于 2023-7-5 18:07:30

您好,这个问题被确认为是一个Bug,因为当前的行为与Excel的行为不符。

在表单保护的情况下,对单元格进行排序,即使能够点击排序按钮,也无法触发排序操作,如下图:



您能接受这样的修复方案吗?

zjac 发表于 2023-7-7 11:09:10

Joestar.Xu 发表于 2023-7-5 18:07
您好,这个问题被确认为是一个Bug,因为当前的行为与Excel的行为不符。

在表单保护的情况下,对单元格进 ...

和excel的行为保持一致就好。
另外这是针对排序的修复,保护之后筛选是否还能用呢

Joestar.Xu 发表于 2023-7-7 11:30:28

zjac 发表于 2023-7-7 11:09
和excel的行为保持一致就好。
另外这是针对排序的修复,保护之后筛选是否还能用呢

保护之后的筛选功能在Excel中是可以使用的,目前的SpreadJS在相同情况下也是可以使用的,这点应该会保持不变,仅修改不一致的部分。
页: [1] 2
查看完整版本: [spreadjs v16.1.3] 设计器保护工作表与代码设置效果不同[SJS-18870]