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

如何重新加载Excel自定义函数?,excel,office-js,custom-functions-excel,Excel,Office Js,Custom Functions Excel,我已经成功地部署了这个示例,并且可以使用新的JS函数 在customfunctions.js中更改了代码/定义后,我重新启动了web服务器,启动了Excel,再次从Office加载项页面插入了自定义函数,但仍然获得了原始函数 如果我启动Excel而不再次插入示例,那么函数仍然是已知的 如何强制Excel删除这样的外接程序并从头重新加载 例如: 此示例包含多个自定义函数及其相应的注册: Excel.Script.CustomFunctions["CONTOSO"]["ADD42"] = { ...

我已经成功地部署了这个示例,并且可以使用新的JS函数

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

如果我启动Excel而不再次插入示例,那么函数仍然是已知的

如何强制Excel删除这样的外接程序并从头重新加载

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

Excel.Script.CustomFunctions["CONTOSO"]["ADD42"] = {
...
Excel.Script.CustomFunctions["CONTOSO"]["GETTEMPERATURE"] = {
...
重命名一个函数,并完全删除另一个函数:

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

Excel随后仍将显示旧的元数据。

Excel将为每个加载项缓存以前注册的函数。缓存的原因是,即使在加载外接程序之前,用户也可以查看和触发这些函数(使外接程序自动加载)

运行以下代码时,将删除缓存中以前注册的所有函数,并立即替换为指定的新函数:

Excel.run(函数(上下文){
context.workbook.customFunctions.addAll();
返回context.sync().then(函数(){});
}).catch(函数(错误){});
编辑:如果在调用上述代码后仍然看到您认为不应该注册的函数,则有两种可能:

  • “不正确”的函数实际上是由另一个外接程序注册的(可能是您之前进行的测试)
  • Excel.run
    调用失败(您可以检查
    error
    参数,查看这是否是您的问题)
  • 手动清除计算机的注册缓存可能很有用:删除文件夹AppData\Local\Microsoft\Office\16.0\Wef\CustomFunctions


    -Michael,PM for add-ins

    请提供您迄今为止获得的代码,并解释您迄今为止尝试的内容。您提出的代码片段已经是示例的一部分。看起来这不可靠。或者这种行为在特定的Excel版本中已修复?我正在使用版本1711(构建8711.2037),32位。我已经在我的answer@MichaelSaunders这仍然有效吗?我无法使用ExcelApi 1.1找到此api