Отключить панель задач надстройки Excel во время редактирования ячейки пользователем - PullRequest
0 голосов
/ 04 января 2019

Я работаю над надстройкой Excel и использую библиотеку office.js. Мой плагин должен сохранять некоторые данные на сервере, введенные в ячейки после того, как пользователь нажал кнопку «Сохранить данные» на панели задач. Все работает отлично, за исключением ситуации, когда пользователь вводил что-то в ячейку и сразу же (без нажатия клавиши ввода или нажатия на другую ячейку) нажимал кнопку «Сохранить данные». Я получаю сообщение об ошибке с кодом «InvalidOperationInCellEditMode» и описанием «Excel находится в режиме редактирования ячейки ...».

Я добавил следующий код, который перехватывает это исключение и показывает сообщение на панели задач, но его нельзя воспринимать как удобное для пользователя поведение.

function SaveData() {

    Excel.run(function (ctx) { 

        return ctx.sync().then(function() {
        // HERE I HAVE SOME CODE THAT WORKS IF CELL IS NOT BEING EDITED
        });
    }).catch(function(error) {
        console.log("Error: " + error);
        if (error instanceof OfficeExtension.Error) {
            console.log("Debug info: " + JSON.stringify(error.debugInfo));
            // HERE I HAVE SOME CODE THAT SHOWS MESSGE ON TASK PANE

        }
    });
}

Есть ли способ заблокировать панель задач, когда пользователь редактирует ячейку так, как она работает для некоторых собственных кнопок Excel?

ОБНОВЛЕНИЕ1: возможно ли завершить редактирование пользователя с помощью API и выполнить код после этого?

1 Ответ

0 голосов
/ 08 января 2019

спасибо за отзыв.

Я инженер, работающий над API Office JavaScript. На ваш вопрос пока нет возможности отключить панель задач. Но мы сделали еще одно улучшение в наших бета-версиях API, которое могло задерживать выполнение API до тех пор, пока пользователь не выйдет из CellEditMode.

Если это может помочь, пожалуйста, дайте мне знать, и я могу поделиться более подробной информацией.

...