我使用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完成用户的编辑并在此之后执行代码?
答案 0 :(得分:1)
感谢您的反馈。
我是致力于Office JavaScript API的工程师。 对于您的问题,尚无法禁用任务窗格。但是我们对beta API进行了另一项改进,这可能会延迟API执行,直到用户退出CellEditMode。
如果可以,请告诉我,我可以分享更多详细信息。
答案 1 :(得分:0)
我们有另一种解决此问题的方法。在正文中写文本“请在Excel工作表中按Enter键或ESC”。