我正在尝试使用"共享运行时"来使用我的 Excel JS 加载项,但它不起作用。以下是我一直在审查的文档。以下是我的项目的屏幕截图。看起来我可以设置初始状态,但我的自定义函数没有更新 window.sharedState。我也尝试使用 Excel 上下文对象,但这也不起作用。
文档链接
-
https://learn.microsoft.com/en-us/office/dev/add-ins/tutorials/share-data-and-events-between-custom-functions-and-the-task-pane-tutorial -
https://learn.microsoft.com/en-us/office/dev/add-ins/excel/configure-your-add-in-to-use-a-shared-runtime
项目截图
我的 Excel 加载项项目(屏幕截图 #1(
我的 Excel 加载项清单.xml文件(屏幕截图 #2(
感谢您分享项目的关键部分!您的屏幕截图非常有帮助!
自定义函数可以读取共享状态这一事实是一个好兆头。
自定义函数未更改共享状态的原因可能是您没有提供有效的 JSON。我看到您尝试设置的值存在几个问题:
{ ... }
必须是文字,即您不能在里面使用变量。因此,像{ oldVal: originalVal }
这样的事情是无效的。如果要使用变量,则必须以编程方式分配这些值,例如
window.sharedState.test = {};
window.sharedState.test.oldVal = originalVal;
- 文字
{ first, second }
无效 - 它不遵循property: value
模式。 - 虽然 JavaScript 和 TypeScript 可能允许使用不带引号的属性名称,但最好养成像
{ "something": 42 }
一样引用它们的习惯。