2

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

文档链接

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

项目截图

我的 Excel 加载项项目(屏幕截图 #1)

我的 Excel 加载项 manifest.xml 文件(屏幕截图 #2)

4

1 回答 1

2

感谢您分享项目的关键部分!你的截图很有帮助!

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

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

  1. { ... }必须是文字,即不能在里面使用变量。因此,类似的东西{ oldVal: originalVal }是无效的。如果要使用变量,则必须以编程方式分配这些值,例如
window.sharedState.test = {};
window.sharedState.test.oldVal = originalVal;
  1. 文字{ first, second }无效 - 它不符合property: value模式。
  2. 虽然 JavaScript 和 TypeScript 可能允许不带引号的属性名称,但最好养成像{ "something": 42 }.
于 2020-06-12T18:12:33.827 回答