Excel JS API-SettingCollection不持久

时间:2018-06-25 20:26:31

标签: excel office-js

我正在尝试更新Excel加载项以使用工作簿SettingCollection而不是Office.context.document.settings对象。该文档似乎表明它们在功能上是等效的,但是使用document.settings,我可以调用saveAsync()并看到我的数据得以保留(在webextensions.xml中的PropertyBag中)。

使用ctx.workbook.settings.add('key', 'value'),我可以获取设置并在当前会话中获取它们,但是它们不会被添加到webextensions.xml中,并且在下一次打开该add-时不可用。内。

我缺少工作簿设置的saveAsync版本吗?我以为context.sync会照顾好它,但我没有运气。

编辑:我知道是什么导致了最初的问题,但是问题仍然存在。当我使用Excel Online关闭浏览器选项卡并使用外接程序重新打开它时,设置不会保留。什么都没有添加到webextensions.xml中。

这是一个示例Excel.run()

window.Excel.run(async ctx => {
    ctx.workbook.settings.add('hello', 'world');
    await ctx.sync();
    let setting = ctx.workbook.settings.getItemOrNullObject('hello');
    setting.load('value');
    await ctx.sync();
    console.log(setting.value);
});

如果重新启动外接程序,则设置“ hello”并存在下一个,但是如果我关闭文件并打开外接程序,则不存在。

1 个答案:

答案 0 :(得分:0)

Excel富API的设置有一个错误,同时您可以尝试使用共享API来解决此问题吗?

function createSetting(){     Office.context.document.settings.set(“ Foo”,“ bar”);     Office.context.document.settings.saveAsync(); }

function readSetting(){     console.log(Office.context.document.settings.get(“ Foo”))); }