reactjs - Excel JS 加载项 - 共享运行时不起作用

标签 reactjs office-js excel-addins custom-functions-excel

我正在尝试使用“共享运行时”来处理我的 Excel JS 加载项,但它不起作用。以下是我一直在审查的文档。以下是我的项目的屏幕截图。看起来我可以设置初始状态,但我的自定义函数没有更新 window.sharedState。我还尝试使用 Excel 上下文对象,但这也不起作用。

文档链接

  1. https://learn.microsoft.com/en-us/office/dev/add-ins/tutorials/share-data-and-events-between-custom-functions-and-the-task-pane-tutorial
  2. https://learn.microsoft.com/en-us/office/dev/add-ins/excel/configure-your-add-in-to-use-a-shared-runtime

项目截图

My Excel Add-In Project (screenshot #1)

My Excel Add-In manifest.xml file (screenshot #2)

最佳答案

感谢您分享项目的关键部分!您的屏幕截图非常有帮助!

您的自定义函数可以读取共享状态这一事实是一个好兆头。

您的自定义函数未更改共享状态的原因可能是因为您没有提供有效的 JSON。我发现您尝试设置的值有几个问题:

  1. { ... } 必须是文字,即您不能在内部使用变量。因此,诸如 { oldVal: OriginalVal } 之类的内容无效。如果您想使用变量,则必须以编程方式分配这些值,例如
window.sharedState.test = {};
window.sharedState.test.oldVal = originalVal;
  • 文字 { first, secondary } 无效 - 它不遵守 property: value 模式。
  • 虽然 JavaScript 和 TypeScript 可能允许不带引号的属性名称,但最好养成像 { "something": 42 } 这样引用它们的习惯。
  • 关于reactjs - Excel JS 加载项 - 共享运行时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62347335/

    相关文章:

    javascript - 在react中多次使用排序函数

    javascript - 无法让子钩子(Hook)接收状态

    javascript - 加载项行为多个打开的 Word 文档

    office365 - 用Office-js替换一张图片

    c# - 在宏中调用 Excel 加载项函数

    reactjs - 你如何管理多个 ReactJS 项目?

    javascript - React 路由器问题未捕获错误 : Invariant Violation: Element type is invalid: expected a string (for built-in components)

    office-js - 如何在 Office 加载项命令 list 中指定按钮大小

    registry - 从 Windows 注册表获取 Office 应用程序的版本和平台

    vba - 在 Excel 中自动添加加载项的单个菜单项