用户正在编辑单元格时禁用excel加载项的任务窗格

时间:2019-01-04 15:34:15

标签: excel office-js excel-addins

我使用Excel插件并使用office.js库。我的插件应该在服务器上保存一些数据,在用户按下任务窗格中的“ SaveData”按钮后将其输入到单元格中。除了当用户在单元格中输入某些内容并立即(无需按Enter或单击另一个单元格)单击按钮“ SaveData”的情况下,其他所有内容都可以正常工作。我收到代码“ 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按钮一样?

UPDATE1:是否可以通过API完成用户的编辑并在此之后执行代码?

2 个答案:

答案 0 :(得分:1)

感谢您的反馈。

我是致力于Office JavaScript API的工程师。 对于您的问题,尚无法禁用任务窗格。但是我们对beta API进行了另一项改进,这可能会延迟API执行,直到用户退出CellEditMode。

如果可以,请告诉我,我可以分享更多详细信息。

答案 1 :(得分:0)

我们有另一种解决此问题的方法。在正文中写文本“请在Excel工作表中按Enter键或ESC”。