Office js Office.js任务窗格UI没有响应,在excel中打印数据时,鼠标显示等待光标

Office js Office.js任务窗格UI没有响应,在excel中打印数据时,鼠标显示等待光标,office-js,Office Js,我正在使用office.js开发一个excel office加载项,我从后端服务器获取了很多数据,希望在excel上显示这些数据。我用 Range.values = [formatted data for excel range] 我将这些值放在5000块中,当调用上下文同步时,IE或桌面excel的响应速度变得如此之快,以至于无法使用 应使用Range.values放置多少个数据点,以便UI响应 在ExcelApi 1.3中(目前处于测试阶段,但在未来几周内应该会“生产”),我们添加了一个特

我正在使用office.js开发一个excel office加载项,我从后端服务器获取了很多数据,希望在excel上显示这些数据。我用

Range.values = [formatted data for excel range]
我将这些值放在5000块中,当调用上下文同步时,IE或桌面excel的响应速度变得如此之快,以至于无法使用

应使用
Range.values
放置多少个数据点,以便UI响应

在ExcelApi 1.3中(目前处于测试阶段,但在未来几周内应该会“生产”),我们添加了一个特殊的帮助程序,将值分块成更小的子集并单独设置,以防止Excel变得无响应

你可以用电脑试试

根据您的时间表(这是针对您已经发布的产品,还是针对您仍在开发的产品),您可能只需要等待Beta版转移到Prod,因此您现在可以使用Beta版CDN进行开发。只需确保您使用的是最新(或至少是最近)的每月Excel。请注意,目前Excel将把
isSetSupported('ExcelApi',1.3)
报告为false,因为它在技术上是一个“测试版”。但下个月的发布(无论何时)将设置为true,届时它将正式上线,我们将把它推广到prod CDN中

如果您不能等待,您可以实现自己的分块机制。请参阅,并在其中搜索setRangePropertiesInBulk。在我们的实验中,我们发现~1500是一个相当不错的数字,所以我们使用它。。。但我很想听听您对此有何经验,我们当然可以相应地调整这个数字。

在ExcelApi 1.3中(目前处于测试阶段,但应该在未来几周内“生产”),我们添加了一个特殊的帮助程序,将值分块成更小的子集并单独设置,防止Excel变得无响应

你可以用电脑试试

根据您的时间表(这是针对您已经发布的产品,还是针对您仍在开发的产品),您可能只需要等待Beta版转移到Prod,因此您现在可以使用Beta版CDN进行开发。只需确保您使用的是最新(或至少是最近)的每月Excel。请注意,目前Excel将把
isSetSupported('ExcelApi',1.3)
报告为false,因为它在技术上是一个“测试版”。但下个月的发布(无论何时)将设置为true,届时它将正式上线,我们将把它推广到prod CDN中


如果您不能等待,您可以实现自己的分块机制。请参阅,并在其中搜索setRangePropertiesInBulk。在我们的实验中,我们发现~1500是一个相当不错的数字,所以我们使用它。。。但我很想听听您对此有何经验,我们当然可以相应地调整该数字。

嗨,Michael,您是否可以在excel写入操作进行时仅使taskpane响应。任务窗格上有一个取消按钮,用于取消excel写入操作,但由于任务窗格没有响应,因此无法单击该按钮。您是在使用分块机制,还是按原样设置值?(顺便说一句,我认为我错了,1.3测试版现在正在为你做块——代码在JS中,但在新版本的桌面客户端出现之前,它实际上是“黑暗的”。但是你仍然可以自己编写一些非常类似的东西,只是不包括“isExcel1\u 3OrAbove”检查或“\u ValidateArraySize”请注意,即使使用分块,您也不太可能单击“取消”让它做任何事情,因为此时调用已经发送到Excel,因此它将继续尝试执行它,即使它看起来不再冻结。但至少从用户体验的角度来看,Excel看起来不会没有响应。如果您确实希望能够取消,则需要成批发送值(多个ctx.sync-s),以便单击“取消”在此过程中,可以阻止JS发送任何新的批处理。一旦某些内容通过网络发送到主机,它将执行到完成,除非批处理中的某些内容出错。嗨,Michael,在excel写入操作进行时,您是否可以仅使taskpane响应。taskpane上有一个取消按钮,用于取消e excel写入操作,但它不可单击,因为taskpane没有响应。您是使用分块机制,还是按原样设置值?(顺便说一句,我认为1.3 beta版现在为您做分块是错误的——代码在JS中,但实际上是“暗的”在新版本的桌面客户端出现之前。但您仍然可以自己编写非常类似的内容,只是不要包含“isExcel1\u 3OrAbove”检查或“\u ValidateArraySize”调用。请注意,即使使用分块,您也不太可能单击“取消”让它做任何事情,因为此时调用已经发送到Excel,因此它将继续尝试执行它,即使它看起来不再冻结。但至少从用户体验的角度来看,Excel看起来不会没有响应。如果您确实希望能够取消,则需要成批发送值(多个ctx.sync-s),这样在途中单击“取消”可以阻止JS发送任何新的批处理。一旦某个内容通过网络发送到主机,它将被执行到完成,除非批处理中出现错误。