找回密码
 立即注册
“AccessDenied”Excel 2019桌面上的WorksheetCollection.onActivated事件出错

问题
我的客户使用“WorksheetCollection.onActivated”;用户更改工作表时更新信息的事件。他们发现在某些版本的 Office 上,加载项收到错误“AccessDenied”。尝试设置此事件时。
  1. async function registerOnActivateHandler() {
  2.   await Excel.run(async (context) => {
  3.     let sheets = context.workbook.worksheets;
  4.     sheets.onActivated.add(onActivate);

  5.     await context.sync();
  6.     console.log("A handler has been registered for the OnActivate event.");
  7.   });
  8. }
复制代码

该代码在 Excel Online 和 Mac 上运行良好,客户报告“拒绝访问”。 Excel 2019 桌面版 16.0.10356.2006 上的问题

有趣的是:

onAdded/onDeactivated 事件在 Excel 2019 桌面上运行良好

错误截图:

有人对这个问题有任何见解吗?

回答
这是一个已知问题,正在推出解决方案。

作为临时解决方案,请在同一批工作表中添加以下代码。onActivated.add(onActivate) 解决问题。
  1. // Call Write Operation APIs, bellow two line code equal to no-op.
  2. let eventobj = sheets.onDeactivated.add(onDeactivate);
  3. eventobj.remove();
复制代码

例如,您的代码需要更新为
  1. async function registerOnActivateHandler() {
  2.   await Excel.run(async (context) => {
  3.     let sheets = context.workbook.worksheets;
  4.     sheets.onActivated.add(onActivate);

  5.     // Call Write Operation APIs, bellow two line code equal to no-op.
  6.     let eventobj = sheets.onDeactivated.add(onDeactivate);
  7.     eventobj.remove();

  8.     await context.sync();
  9.     console.log("A handler has been registered for the OnActivate event.");
  10.   });
  11. }
复制代码






上一篇:使用 Javascript 的 JSON 到 XML
下一篇:Dockerize 微服务未在 Eureka 服务器中注册