找回密码
 立即注册

QQ登录

只需一步,快速开始

Richard.Ma 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2024-4-25 10:06  /   查看:1148  /  回复:0
1. 背景

SpreadJS是一个功能强大的电子表格组件,在使用SpreadJS电子表格组件时,某些情况下我们可能希望用户只能使用部分指定的公式,而其他公式则无效。即所谓的公式白名单需求。


2. 实现思路
要实现公式白名单,我们可以利用SpreadJS提供的全局删除和添加公式的功能。具体来说,我们需要做以下几个步骤:
  • 找到需要添加到白名单的公式函数。
  • 删除当前所有的全局函数。
  • 添加指定的公式函数到全局函数列表中。


3. 代码实现
下面是实现公式白名单的代码示例:
  1. // 找到需要添加到白名单的公式函数
  2. var sumf = GC.Spread.CalcEngine.Functions.findGlobalFunction("Sum");

  3. // 删除当前所有的全局函数
  4. GC.Spread.CalcEngine.Functions.removeGlobalFunction();

  5. // 添加指定的公式函数到全局函数列表中
  6. GC.Spread.CalcEngine.Functions.defineGlobalCustomFunction("SUM", sumf);
复制代码

以上代码首先使用 findGlobalFunction 方法找到了需要添加到白名单的公式函数,这里以 Sum 函数为例。然后,使用 removeGlobalFunction 方法删除了当前所有的全局函数,确保所有的公式被清空。最后,使用 defineGlobalCustomFunction 方法将指定的公式函数添加到全局函数列表中,这样在电子表格中就只能使用我们指定的公式了。


4.扩展:创建公式黑名单
即在现有公式集合的基础上,仅删除禁止用户使用的公式
只需要执行以下代码删除即可
  1. GC.Spread.CalcEngine.Functions.removeGlobalFunction("SUM");
复制代码




0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部