我使用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完成用户编辑并在此之后执行代码?
感谢您的反馈。
我是一名从事Office JavaScript API的工程师。对于您的问题,尚无法禁用任务窗格。但是我们对beta API进行了另一项改进,这可能会延迟API执行,直到用户退出CellEditMode。
如果这有帮助,请告诉我,我可以分享更多细节。