Wilson.Zhang 发表于 2024-10-31 17:47:06

探究SpreadJS的数据隐藏策略

SpreadJS允许用户通过行头或列头设置某行或某列显示或隐藏,如果对某行设置了隐藏,这意味着被设置的行sheet页中不可见,行头中原本连续的行号序列将出现断点。如图1所示,隐藏了行5,行头便不可见行索引5。


图1. 行5不可见
隐藏行列可以有效保护整行或整列内数据的私密性,然而,如果只需要隐藏行内部分单元格数据呢?SpreadJS原生功能并不能隐藏当啊单元格,想要隐藏单元格中的数据,可以设置单元格数据文本的字体颜色和单元格背景色相同,从视觉效果上即可达到单元格内数据不可见。然而,点击单元格后,单元格区域和工具栏区域之间的公式编辑栏中仍将显示单元格中的数据,如图2所示。


图2. 公式编辑栏显示单元格数据
然而,公式编辑栏中的数据能否隐藏呢?在表单保护时,可以通过CellRange:hidden()控制单元格中的数据在公式编辑栏可见与否。那么,可行的方案就浮出水面了,具体思路如下:

1. 对需要隐藏数据的单元格,设置其文本字体颜色与背景颜色一致,以从视觉上令单元格中的数据不可见。
2. 对需要隐藏数据的单元格,设置其单元格锁定状态,开启表单保护后,对其设置公式不可见,即CellRange:hidden(true)。

至此,便可实现隐藏单元格中的数据,虽然只是从视觉上不可见,而数据依然存在于单元格内,但是也实现了需求。上述方案运行效果如图3所示,附上demo,以供参考。


图3. 隐藏和显示单元格数据

问题原帖:https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=228173&extra=page%3D2%26filter%3Dauthor%26orderby%3Ddateline%26dateline%3D2592000%26typeid%3D200
页: [1]
查看完整版本: 探究SpreadJS的数据隐藏策略