Office-JS加载项在多个打开的Excel中有问题

马克·西伯特

在多个打开的Excel实例中使用Angular Excel插件(Office js)时遇到一些问题。

在更详细地描述问题之前,我想简单解释一下AddIn的作用:

用户可以在Excel中定义UDF函数,以从服务器获取数据并在Excel中显示。但是,UDF函数不直接执行,而仅在触发更新时执行。之后,将请求发送到服务器,数据被提取,格式化并在Excel中显示。如果用户单击“更新”按钮,则会迭代工作簿中的所有工作表,并搜索相应的UDF函数。这些请求直接发送到服务器。在某些情况下,可能需要一些时间来回答请求并在Excel中显示数据(例如,当用户在100个工作表中定义了100个UDF函数时,每个工作表都包含一个UDF)。

我目前有以下问题:

1)如果用户打开了一个Excel实例,该实例具有在100个工作表中定义的UDF函数,而另一个实例具有70个包含UDF函数的工作表,则当我在打开的Excel实例之间切换时,出现“发生意外的服务器错误”错误。更新无法进行,有时根本不发送请求或无法处理请求。我认为以下代码片段可能会导致此问题:

Excel.run(异步上下文=> {常量表:Excel.Worksheet = context.workbook.worksheets.getActiveWorksheet(); ...}

context.workbook始终返回当前打开的工作簿或活动Excel实例中当前打开的工作簿。但是我还没有找到一种通过名称或ID访问工作簿的方法。

插件只能在一个实例中正常工作,还是我做错了什么?

2)如果您已通过AddIn(例如具有UDF功能的100个工作表)开始了工作簿的更新,而Excel失去了焦点(例如,通过切换到Word或Edge),则正如第1节所述,并非所有请求都已发送或处理。

我希望你们中有些人已经遇到过类似的问题,也许可以为他们解决。

陆mond

感谢Marco Siebert向我们报告此问题。

对于1#,这是一个我们正在调查的已知问题,它也在https://officespdev.uservoice.com/forums/224641-feature-requests-and-feedback/suggestions/39781582-fix-generalexceptions-being中进行跟踪当多个e被抛出时

要解决此问题,我们需要修复此方案中使用的每个API,为此问题我们有一个工作项3743479。您也可以在用户语音中推荐此功能。此外,能否请您分享我要在多个工作簿方案中使用的API?

对于您的问题:“ context.workbook总是返回当前打开的工作簿或活动的Excel实例中当前打开的工作簿。但是我还没有找到一种通过名称或ID访问工作簿的方法。” 这是设计使然,因为每个工作簿都有JS加载项。因此,除了addFromBase64 API之外,我们不支持访问其他工作簿内容,该API提供了将工作表从另一个工作簿复制到当前工作簿的功能。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Office JS加载项

Office 2013的Excel加载项

如果工作表名称中有连字符 (-),Office.js Excel 加载项命名绑定将不起作用

我的第一个Excel Office JS加载项ActiveX问题

打包Office加载项

具有要求Excel JS API 1.9的方法的Office加载项在Office 2016上运行。这怎么可能?

使用Office JS API的Office VSTO加载项与Office加载项

Office 2010 - Excel 问题

无法加载 Office 加载项

Office JS-刷新加载项版本

带有 Blazor WASM 的 Office 加载项

修改Office加载项的现有设置

没有SSL的Office加载项

如何在普通网站和带有Office.js的Office加载项中重用页面

从 office 加载项,是否可以获取 office 文档的加载位置?

打开MessageBox时VSTO Office加载项给出异常

当 webapp 作为 Outlook 加载项加载时有条件地加载 Office.js

为所有打开的文档调用使用“yo office”创建的加载项中的单击事件

我们可以在 Office.js 加载项中加载 Excel 文件吗

使用Office.js在MS Word加载项中加载Excel文件

Office加载项Office.context.auth.getAccessTokenAsync错误13004

Office商店中Office加载项的付款选项

Office Web加载项:Office.initialize()函数

Angular Office加载项:“找不到名称'Office'”

分发Microsoft.Office.Tools Dll和Office加载项

Office 2007的Microsoft.Office.Interop.Excel

Outlook 加载项 office.js 未加载

Mac中未加载office加载项-Mac中是否支持Office.initialize事件?office.js

从Word Web加载项(Office.Js)进行的API调用不起作用:CORS问题?