Как вернуть значение из функции с помощью Excel.run ()?

Как я могу вернуть значение из этой функции. Мне нужно написать обратный вызов как работу. Я хотел бы иметь возможность писать служебные функции, такие как ниже, которые будут использовать Excel.run () и возвращать необходимое значение в качестве выхода функции.

function currentSheetName() { //How to return a value from this function. For eg: activeWorksheet.name Excel.run(function (ctx) { var activeWorksheet = ctx.workbook.worksheets.getActiveWorksheet(); activeWorksheet.load("name"); return ctx.sync().then(function(){ callback(activeWorksheet.name) }); }).then(function() { }).catch(function() { }); }; 

Хороший вопрос! Несколько возможных решений.

Одним из решений является использование машинописных и async/await , а также возможность обойти эту проблему в целом.

Другой – это переменная pass-through в вашем вызове context.sync() или return в .then – и значение будет передано через. Он также выйдет в caller из Excel.run , так что вы можете сделать Excel.run или .then(function(result) { ... }) и получить доступ к этому значению.

Для последнего см. Следующий снимок экрана из книги « Надстройки надстройки здания, использующие Office.js » (полное раскрытие, я автор этой книги, но я думаю, вы многому научитесь у нее, и у меня нет личная прибыль от него, поскольку я жертвую 100% своей прибыли на благотворительность). На скриншоте показаны передаваемые значения между .then -s, но это та же концепция, что и просто возвращающее значение из Excel.run .

Передача значения

С точки зрения использования TypeScript и async/await в книге есть куча инструкций (часть JS фактически находится в приложении, так как книга отражает мою личную точку зрения, что начиная с TypeScript 2.0 и async/await в частности , лучший способ испытать и использовать наши API Office.js через TypeScript).

  • Отладка JavaScript Visual Studio
  • Завершить верхнюю строку office-js
  • API JavaScript 2016 для Office - Удалить кнопки фильтра таблицы
  • После установки формата и записи некоторых значений для заданного диапазона этот же формат частично и автоматически применяется к другим диапазонам
  • Командная надстройка Excel 2016 работает только в Excel Online
  • Надстройка Excel не загружается на нескольких машинах
  • autofitColumns для формата диапазона в excel office js library not working
  • Надстройки для Office365: вставка данных в лист excel из надстройки панели задач
  • Рабочий лист зависает при прокрутке на панели задач во время выполнения задачи
  • Защита рабочей книги перестала работать с Excel Online
  • Прокрутка по диапазонам
  • Interesting Posts

    Текст в столбцы со структурой: Apple David 1234 5679 2456

    Возможно ли одно из нескольких таблиц с Powerpivot?

    Как написать excel с помощью Apache POI с помощью TestNG dataProvider

    Добавление ChartTitle в Excel работает в VBA, но не из VBScript

    Parse Bloomberg Excel / CSV с Pandas DataFrame (новый пользователь)

    Формула Excel для сравнения парциальных ячеек

    Как оценивать значение строки как формулу в excel

    Собирать имена столбцов из электронной таблицы Excel в Java

    Как «вращать» данные в Excel (сложная транспозиция)

    Как обеспечить пользовательский угол метки в excel с помощью C #

    Если ячейка начинается с текстовой строки … Формула

    Экспорт данных DataTable в Excel Не работает

    forumla автоматически заполняется, когда добавляется другое значение ячейки – Excel

    Функция для прокрутки всех листов для поиска значения, возврата имени рабочего листа

    Создание Duplicate Excel Row на основе значений в другой ячейке файла Excel

    Давайте будем гением компьютера.