Excel JS API - SettingCollection не сохраняется - PullRequest
0 голосов
/ 25 июня 2018

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

0 голосов
/ 23 августа 2018

В настройках расширенного API Excel имеется ошибка, можете ли вы попробовать вариант API Shared в качестве обходного пути ...

функция createSetting () {Office.context.document.settings.set ("Foo", "bar");Office.context.document.settings.saveAsync ();}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...