【问题标题】:Call Custom Functions from add-in commands in manifest file Office JS从清单文件 Office JS 中的加载项命令调用自定义函数
【发布时间】:2018-10-24 11:40:16
【问题描述】:

我开始使用带有 office js api 的自定义函数,我有几个问题。

我有一个场景,我可能需要在单击 excel 功能区中的加载项按钮后刷新所有自定义函数公式值。有没有办法通过 function-file.js 或任何其他方式来做到这一点?

另外,在 custom-functions.js 或插件的任何其他部分之间共享状态的好方法是什么?为此,我一直在尝试使用 OfficeRuntime.AsyncStorage,但问题是 office.js 库中没有定义 AsnycStorage,并且只能从自定义函数访问 AsyncStorage,因为它是在自定义函数运行时中定义的。

【问题讨论】:

    标签: office-js custom-functions-excel


    【解决方案1】:

    感谢您询问自定义函数并试用它们! 要获取函数中的所有更改(并查看使用这些函数的单元格中的更新),您需要重新加载项目。 (请参阅docs on sideloading here)我们认识到这个过程可以改进 - 因此,我们的工程团队正在努力进行“实时重新加载”,这将在未来推出。

    RE:OfficeRuntime.AsyncStorage - 加载项的所有部分都可以访问它(因此,加载项的自定义函数和非自定义函数部分,如任务窗格等 UI 元素都可以使用它) .我们目前有一些关于 AsyncStorage 的文档here

    如果您还有其他问题,请告诉我 - 谢谢!

    【讨论】:

    • 要补充这一点,您可能还需要确保您的任务窗格中有正确的 office.js 引用。我们仍在努力将这些预览位发布到我们的官方 CDN,但现在请确保您参考:officedev.github.io/custom-functions/lib/office.js
    • 嗨@MichelleScharlock!感谢你的回答。通过刷新,我并不是要更新 excel 中的函数实现,而是要重新计算我们自定义函数的每个单元格的值,就像我们手动按“CTRL + ALT + SHIFT + F9”一样。那么有没有办法从任务窗格或excel功能区做同样的事情?我尝试使用 context.workbook.application.calculate("Full");虽然它确实重新计算了内置的 excel 公式值,但它没有重新计算自定义函数的值。
    • @KeyurPatel-MSFT 即使在此链接中我仍然找不到 AsyncStorage 的定义:officedev.github.io/custom-functions/lib/office.js
    • 对于您的 AsyncStorage q:AsyncStorage 实际上不在 office-js 中,它存在于一种新类型 OfficeRuntime 中。 (docs.microsoft.com/en-us/office/dev/add-ins/excel/…) 你可以在这里找到参考文档 (docs.microsoft.com/en-us/javascript/api/office-runtime/…)。
    • 我不知道以您描述的方式从任务窗格或功能区重新计算函数的方法。因为 CF 在它们自己的运行时中运行,所以使用上下文的任何东西都不应该工作(听起来,没有按预期工作)。 @KeyurPatel-MSFT,您能否再次检查我是否有即时重新计算?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-03
    • 1970-01-01
    相关资源
    最近更新 更多