Richard.Ma 发表于 2024-4-25 10:06:37

如何在SpreadJS中创建公式白名单(黑名单)

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");



页: [1]
查看完整版本: 如何在SpreadJS中创建公式白名单(黑名单)