Я пытаюсь обновить надстройку Excel, чтобы использовать книгу SettingCollection
вместо объекта Office.context.document.settings
.Документация, кажется, предполагает, что они функционально эквивалентны, но с document.settings
я могу позвонить saveAsync()
и увидеть, что мои данные сохраняются (в PropertyBag в webextensions.xml).
С 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);
});
Параметр «привет» устанавливается и существует следующим, если я перезапущу свою надстройку, но не тогда, когда я закрываю файл и открываю свою надстройку.