如何重新加载Excel自定义函数?

我已成功部署了Excel自定义函数示例,并且可以使用新的JS函数。

在更改customfunctions.js的代码/定义customfunctions.js ,我重新启动了我的Web服务器,启动了Excel,再次从Office加载项页面插入了自定义函数,但仍然获得原始函数。

如果我没有再次插入示例,启动Excel,function仍然知道!

我如何强制Excel删除这样一个加载项,并从头开始重新加载?

示例:示例包含几个自定义函数及其相应的注册:

 Excel.Script.CustomFunctions["CONTOSO"]["ADD42"] = { ... Excel.Script.CustomFunctions["CONTOSO"]["GETTEMPERATURE"] = { ... 

重命名一个函数,并完全删除另一个函数:

 Excel.Script.CustomFunctions["CONTOSO"]["ADD42RENAMED"] = { ... /* Excel.Script.CustomFunctions["CONTOSO"]["GETTEMPERATURE"] = { ... 

Excel仍然会显示旧的元数据。

Excel为每个加载项caching先前注册的函数。 caching的原因是,即使在加载项加载之前,这些函数也可供用户查看和触发(导致加载项自动加载)。

运行以下代码时,高速caching中的所有以前注册的函数都将被删除,并立即replace为您指定的新函数:

 Excel.run(function (context) { context.workbook.customFunctions.addAll(); return context.sync().then(function(){}); }).catch(function(error){}); 

编辑:如果你仍然看到你调用上面的代码后,你认为不应该注册的函数,有两种可能的可能性:

  1. “不正确”的function实际上是由一个不同的插件注册的(也许是你正在做的一个更早的testing)。
  2. Excel.run调用失败(您可以检查error参数,看看这是否是您的问题)

手动清除计算机的注册caching可能很有用:删除文件夹AppData \ Local \ Microsoft \ Office \ 16.0 \ Wef \ CustomFunctions

迈克尔,下午的插件