1

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

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

是否有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);
});

如果我重新启动我的加载项,设置“你好”设置并存在下一个,但如果我关闭文件并打开我的加载项,则不会。

4

1 回答 1

0

Excel 丰富的 API 设置存在错误,您能否在此期间尝试共享 API 风格作为解决方法...

函数 createSetting() { Office.context.document.settings.set("Foo", "bar"); Office.context.document.settings.saveAsync(); }

函数 readSetting() { console.log(Office.context.document.settings.get("Foo")); }

于 2018-08-22T23:52:57.050 回答