1. 背景
SpreadJS是一个功能强大的电子表格组件,在使用SpreadJS电子表格组件时,某些情况下我们可能希望用户只能使用部分指定的公式,而其他公式则无效。即所谓的公式白名单需求。
2. 实现思路要实现公式白名单,我们可以利用SpreadJS提供的全局删除和添加公式的功能。具体来说,我们需要做以下几个步骤: - 找到需要添加到白名单的公式函数。
- 删除当前所有的全局函数。
- 添加指定的公式函数到全局函数列表中。
3. 代码实现下面是实现公式白名单的代码示例: - // 找到需要添加到白名单的公式函数
- var sumf = GC.Spread.CalcEngine.Functions.findGlobalFunction("Sum");
- // 删除当前所有的全局函数
- GC.Spread.CalcEngine.Functions.removeGlobalFunction();
- // 添加指定的公式函数到全局函数列表中
- GC.Spread.CalcEngine.Functions.defineGlobalCustomFunction("SUM", sumf);
复制代码
以上代码首先使用 findGlobalFunction 方法找到了需要添加到白名单的公式函数,这里以 Sum 函数为例。然后,使用 removeGlobalFunction 方法删除了当前所有的全局函数,确保所有的公式被清空。最后,使用 defineGlobalCustomFunction 方法将指定的公式函数添加到全局函数列表中,这样在电子表格中就只能使用我们指定的公式了。
4.扩展:创建公式黑名单 即在现有公式集合的基础上,仅删除禁止用户使用的公式 只需要执行以下代码删除即可 - GC.Spread.CalcEngine.Functions.removeGlobalFunction("SUM");
复制代码
|