Excel JS API - SettingCollection не сохраняется

Я пытаюсь обновить надстройку 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);
});

Параметр "Привет" устанавливает и действует следующим образом, если я перезапускаю свою надстройку, но нет, если я закрываю файл и открываю свою надстройку.

1 ответ

В настройках Excel есть ошибка для настроек, можете ли вы попробовать вариант Shared 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")); }

Другие вопросы по тегам